資料介紹
Genode 操作系統(tǒng)框架(通常稱為Genode )已經存在了十多年,并且仍在積極開發(fā)中。它在通用 x86 硬件上得到最好的支持,因為我們在 Genode Labs 將它高效地用于我們的日常業(yè)務。但是,也有(部分)支持各種基于 ARM 的平臺。最近新增的功能是支持 Digilent 的 Zybo Z7 板。這是關于在 Zybo Z7-10 或 Zybo Z7-20 板上啟動非?;镜?Genode 場景的初學者級教程。
先決條件
對于 Genode 開發(fā),您需要一臺 Linux 主機。我建議使用 Ubuntu LTS,Genode 可以在其上輕松構建。Genode 使用自己的工具鏈,必須手動安裝。您可以下載預構建的工具鏈并使用以下命令進行安裝:
$ sudo tar xPf genode-toolchain-
請確保按照入門指南熟悉 Genode 。這將確保您已安裝所有其他必需的構建工具。
準備 Zybo Z7 開發(fā)板
Zybo Z7 開發(fā)板附帶一個預安裝的演示應用程序,該應用程序存儲在板載閃存中。確保將跳線 JP5 設置為 QSPI 啟動并打開設備電源。演示應用程序控制板載 LED 并通過 UART 接口發(fā)送一些字符。兩者都有助于檢查開發(fā)板是否正確啟動并測試 UART 連接。為了使用后者,將 Micro-USB 電纜連接到標有“PROG UART”的連接器,將其連接到您的開發(fā)系統(tǒng)并打開電路板電源。/dev/ttyUSB1設備應該會彈出。啟動您喜歡的終端程序(例如 picocom、screen)并按下重置按鈕以查看開發(fā)板的串行輸出。我喜歡按如下方式使用屏幕:
$ sudo screen /dev/ttyUSB1 115200
如果要退出屏幕,請輸入字符序列Ctrl+a k。
克隆存儲庫
首先,我們需要獲得一個 Genode 的克?。?/p>
~$ git clone https://github.com/genodelabs/genode.git genode
其次,我們需要克隆 Zynq 支持的配套存儲庫:
~$ git clone https://github.com/genodelabs/genode-zynq.git genode/repos/zynq
創(chuàng)建構建目錄
Genode 使用樹外構建過程。因此,我們使用以下命令在~/genode/build/arm_v7a為我們的目標平臺準備一個構建目錄:
~/genode$ ./tool/create_builddir arm_v7a
構建目錄托管配置文件~/genode/build/arm_v7a/etc/build.conf需要進行一些修改。
首先,我們必須告訴構建系統(tǒng)使用 Zynq 存儲庫,這是通過取消注釋以下行來實現的:
REPOSITORIES += $(GENODE_DIR)/repos/zynq
其次,我們將設置一些變量,以節(jié)省我們稍后的輸入時間。
KERNEL ?= hw BOARD ?= zynq_zybo_z7 RUN_OPT += --depot-auto-update
構建 SD 卡映像
接下來,我們將構建一個 SD 卡映像。Genode 使用 u-boot 并方便地將所有內容編譯成一個圖像。不過,在觸發(fā) make 命令之前,我們必須下載 u-boot 的第三方代碼。這是通過prepare_port工具完成的:
~/genode$ ./tool/ports/prepare_port zynq_uboot
現在,我們準備構建 SD 卡映像,如下所示:
~/genode$ RUN_OPT='--include image/zynq_uboot_sdcard' make -C build/arm_v7a run/log
此命令告訴 Genode 的構建系統(tǒng)構建運行/日志場景并包含圖像創(chuàng)建腳本。如果您對更多詳細信息感興趣,請參閱構建系統(tǒng)文檔。請注意,我們還可以將定義添加到build.conf 中。但是,我想在以后跳過映像創(chuàng)建并在初始化 SD 卡后使用 TFTP 引導。構建過程應以以下行結束RUN_OPT
Created SD-card image file var/run/log.img
當我將 SD 卡插入我的 Linux 主機時,會彈出一個/dev/mmcblk0設備。因此,我將創(chuàng)建的圖像寫入 SD 卡,如下所示:
~/genode$ sudo dd if=build/arm_v7a/var/run/log.img of=/dev/mmcblk0 bs=1M conv=fsync
將 SD 卡插入 Zybo 板,不要忘記將跳線 JP5 設置為 SD 啟動。打開設備電源,連接到串行控制臺(例如使用屏幕),然后按下重置按鈕。您應該看到以下輸出:
[init -> test-log] hex range: [0e00,1680) [init -> test-log] empty hex range: [0abc0000,0abc0000) (empty!) [init -> test-log] hex range to limit: [f8,ff] [init -> test-log] invalid hex range: [f8,08) (overflow!) [init -> test-log] negative hex char: 0xfe [init -> test-log] positive hex char: 0x02 [init -> test-log] floating point: 1.70 [init -> test-log] multiarg string: "parent -> child.7" [init -> test-log] String(Hex(3)): 0x3 [init -> test-log] Very long messages: [init -> test-log -> log] 1.....................................................................................................................................................................................................................................2 [init -> test-log] 3.....................................................................................................................................................................................................................................4 [init -> test-log] 5.....................................................................................................................................................................................................................................6 [init -> test-log] [init -> test-log] Test done. Run script execution successful
啟用 TFTP 引導
由于我笨拙的手指不能很好地處理 micro SD 卡,所以我寧愿避免經常觸摸它們。相反,我更喜歡網絡啟動。幸運的是,u-boot 支持通過 TFTP 加載圖像。我們 SD 卡上的 u-boot 安裝加載uEnv.txt文件(如果存在)并執(zhí)行uenvcmd命令。因此,我使用以下內容設置了uEnv.txt文件:
serverip=x.x.x.x kernel_img=/srv/tftp/usrp/uImage uenvcmd=tftpboot ${load_addr} ${serverip}:${kernel_img} && bootm start && bootm loados && bootm go
指的server_ip是我安裝了tftp-hpa 的 Linux 主機。請注意,kernel_img必須引用 TFTP 服務器可達的路徑。因為我沒有使用服務器--secure標志,所以路徑是絕對路徑。否則,它必須相對于 TFTP 服務器的根目錄。
現在,我們需要告訴 Genode 的構建系統(tǒng)填充 TFTP 目錄。這是通過將以下行插入build.conf 來完成的:
RUN_OPT_zybo = --include image/uboot RUN_OPT_zybo += --include load/tftp RUN_OPT_zybo += --load-tftp-base-dir /srv/tftp/usrp RUN_OPT_zybo += --load-tftp-absolute RUN_OPT_zybo += --include log/serial RUN_OPT_zybo += --log-serial-cmd "picocom -b 115200 /dev/ttyUSB1" BOARD_RUN_OPT(zynq_zybo_z7) = $(RUN_OPT_zybo)
請注意,這還會告訴構建系統(tǒng)自動連接到串行控制臺。因此,我們可以運行需要主機系統(tǒng)評估日志輸出的測試場景,例如run/timer_accuracy:
~/genode$ make -C build/arm_v7a run/timer_accuracy
一旦出現“Terminal ready”,我們就可以點擊 Zybo 板的重置按鈕。如果一切設置正確,我們應該看到如下輸出:
[init -> test-timer_accuracy] [init -> test-timer_accuracy] [init -> test-timer_accuracy] [init -> test-timer_accuracy] [init -> test-timer_accuracy] [init -> test-timer_accuracy] [init -> test-timer_accuracy] [init -> test-timer_accuracy] [init -> test-timer_accuracy] [init -> test-timer_accuracy] Good: round 1, host measured 1000 ms, test measured 1007 ms Good: round 2, host measured 2000 ms, test measured 2228 ms Good: round 3, host measured 3000 ms, test measured 2764 ms Good: round 4, host measured 4000 ms, test measured 4003 ms Good: round 5, host measured 5000 ms, test measured 5007 ms Good: round 6, host measured 6000 ms, test measured 6002 ms Good: round 7, host measured 7000 ms, test measured 6995 ms Good: round 8, host measured 8000 ms, test measured 8001 ms Good: round 9, host measured 9000 ms, test measured 8993 ms
恭喜,您已經成功地為 Zybo Z7 開發(fā)板設置了 Genode。
?
- 使用Genode控制Zybo Z7 GPIO - 第2/2部分
- Zybo Z7-20上的汽車檢測系統(tǒng)
- 使用Genode控制Zybo Z7 GPIO
- Eclypse Z7上的Zmod ADC和DAC:正弦波環(huán)回
- 嵌入式操作系統(tǒng)FreeRTOS的原理與移植實現
- 嵌入式實時操作系統(tǒng)FreeRTOS在ARM7上移植實現
- 嵌入式操作系統(tǒng)FreeRTOS的原理實現
- STEP7與Windows操作系統(tǒng)的兼容性 6次下載
- 單片機編程和操作系統(tǒng)綜述 40次下載
- 如何實現一個微內核操作系統(tǒng)的設計 28次下載
- 如何使用物聯網操作系統(tǒng)Zephyr實現“連續(xù)集成”開源軟件的詳細說明
- Linux操作系統(tǒng)下C語言編程入門.pdf 96次下載
- RTOS操作系統(tǒng) 0次下載
- Linux操作系統(tǒng)原理及應用 0次下載
- 操作系統(tǒng)技巧使用大全
- 深度解析全球操作系統(tǒng)格局 1270次閱讀
- 詳解實時操作系統(tǒng)和非實時操作系統(tǒng) 4959次閱讀
- 基于pSoSystem操作系統(tǒng)實現通用網絡代碼框架的設計 2127次閱讀
- 基于Linux等不同操作系統(tǒng)實現異構系統(tǒng)的設計 2633次閱讀
- digilentPcam 5C開發(fā)板的成像模塊介紹 2689次閱讀
- digilent Zynq-7000 ARM/FPGA SoC開發(fā)板介紹 2269次閱讀
- digilentZynq-7000 ARM/FPGA SoC開發(fā)板介紹 2866次閱讀
- 對實時操作系統(tǒng)特性的討論 5189次閱讀
- Zybo Z7上OpenCV和SDSoC的結合 1933次閱讀
- 嵌入式操作系統(tǒng)是什么_嵌入式操作系統(tǒng)有哪些 2w次閱讀
- 如何設計一個小型嵌入式操作系統(tǒng) 9509次閱讀
- 國產操作系統(tǒng)究竟哪里不行_國產操作系統(tǒng)為何難普及 1.3w次閱讀
- 簡要介紹了操作系統(tǒng)虛擬化的概念,以及實現操作系統(tǒng)虛擬化的技術 1.3w次閱讀
- 基于FreeRTOS的嵌入式實時操作系統(tǒng)的原理和實現 6715次閱讀
- Zybo全棧開發(fā)入門教程(基于Linux嵌入式系統(tǒng)):10個步驟自定義IP模塊 3872次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費
- 2AD庫封裝庫安裝教程
- 0.49 MB | 1次下載 | 免費
- 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
- 1.12 MB | 1次下載 | 免費
- 4網絡安全從業(yè)者入門指南
- 2.91 MB | 1次下載 | 免費
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費
- 6海川SM5701規(guī)格書
- 1.48 MB | 次下載 | 免費
- 7H20PR5電磁爐IGBT功率管規(guī)格書
- 1.68 MB | 次下載 | 1 積分
- 8IP防護等級說明
- 0.08 MB | 次下載 | 免費
本月
- 1貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設計指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費
- 8蘋果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論