資料介紹
Genode 操作系統框架(通常稱為Genode )已經存在了十多年,并且仍在積極開發中。它在通用 x86 硬件上得到最好的支持,因為我們在 Genode Labs 將它高效地用于我們的日常業務。但是,也有(部分)支持各種基于 ARM 的平臺。最近新增的功能是支持 Digilent 的 Zybo Z7 板。這是關于在 Zybo Z7-10 或 Zybo Z7-20 板上啟動非常基本的 Genode 場景的初學者級教程。
先決條件
對于 Genode 開發,您需要一臺 Linux 主機。我建議使用 Ubuntu LTS,Genode 可以在其上輕松構建。Genode 使用自己的工具鏈,必須手動安裝。您可以下載預構建的工具鏈并使用以下命令進行安裝:
$ sudo tar xPf genode-toolchain-
請確保按照入門指南熟悉 Genode 。這將確保您已安裝所有其他必需的構建工具。
準備 Zybo Z7 開發板
Zybo Z7 開發板附帶一個預安裝的演示應用程序,該應用程序存儲在板載閃存中。確保將跳線 JP5 設置為 QSPI 啟動并打開設備電源。演示應用程序控制板載 LED 并通過 UART 接口發送一些字符。兩者都有助于檢查開發板是否正確啟動并測試 UART 連接。為了使用后者,將 Micro-USB 電纜連接到標有“PROG UART”的連接器,將其連接到您的開發系統并打開電路板電源。/dev/ttyUSB1設備應該會彈出。啟動您喜歡的終端程序(例如 picocom、screen)并按下重置按鈕以查看開發板的串行輸出。我喜歡按如下方式使用屏幕:
$ sudo screen /dev/ttyUSB1 115200
如果要退出屏幕,請輸入字符序列Ctrl+a k。
克隆存儲庫
首先,我們需要獲得一個 Genode 的克隆:
~$ git clone https://github.com/genodelabs/genode.git genode
其次,我們需要克隆 Zynq 支持的配套存儲庫:
~$ git clone https://github.com/genodelabs/genode-zynq.git genode/repos/zynq
創建構建目錄
Genode 使用樹外構建過程。因此,我們使用以下命令在~/genode/build/arm_v7a為我們的目標平臺準備一個構建目錄:
~/genode$ ./tool/create_builddir arm_v7a
構建目錄托管配置文件~/genode/build/arm_v7a/etc/build.conf需要進行一些修改。
首先,我們必須告訴構建系統使用 Zynq 存儲庫,這是通過取消注釋以下行來實現的:
REPOSITORIES += $(GENODE_DIR)/repos/zynq
其次,我們將設置一些變量,以節省我們稍后的輸入時間。
KERNEL ?= hw BOARD ?= zynq_zybo_z7 RUN_OPT += --depot-auto-update
構建 SD 卡映像
接下來,我們將構建一個 SD 卡映像。Genode 使用 u-boot 并方便地將所有內容編譯成一個圖像。不過,在觸發 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 的構建系統構建運行/日志場景并包含圖像創建腳本。如果您對更多詳細信息感興趣,請參閱構建系統文檔。請注意,我們還可以將定義添加到build.conf 中。但是,我想在以后跳過映像創建并在初始化 SD 卡后使用 TFTP 引導。構建過程應以以下行結束RUN_OPT
Created SD-card image file var/run/log.img
當我將 SD 卡插入我的 Linux 主機時,會彈出一個/dev/mmcblk0設備。因此,我將創建的圖像寫入 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文件(如果存在)并執行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 的構建系統填充 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)
請注意,這還會告訴構建系統自動連接到串行控制臺。因此,我們可以運行需要主機系統評估日志輸出的測試場景,例如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 開發板設置了 Genode。
?
- 使用Genode控制Zybo Z7 GPIO - 第2/2部分
- Zybo Z7-20上的汽車檢測系統
- 使用Genode控制Zybo Z7 GPIO
- Eclypse Z7上的Zmod ADC和DAC:正弦波環回
- 嵌入式操作系統FreeRTOS的原理與移植實現
- 嵌入式實時操作系統FreeRTOS在ARM7上移植實現
- 嵌入式操作系統FreeRTOS的原理實現
- STEP7與Windows操作系統的兼容性 6次下載
- 單片機編程和操作系統綜述 40次下載
- 如何實現一個微內核操作系統的設計 28次下載
- 如何使用物聯網操作系統Zephyr實現“連續集成”開源軟件的詳細說明
- Linux操作系統下C語言編程入門.pdf 95次下載
- RTOS操作系統 0次下載
- Linux操作系統原理及應用 0次下載
- 操作系統技巧使用大全
- 深度解析全球操作系統格局 675次閱讀
- 詳解實時操作系統和非實時操作系統 3520次閱讀
- 基于pSoSystem操作系統實現通用網絡代碼框架的設計 1986次閱讀
- 基于Linux等不同操作系統實現異構系統的設計 2537次閱讀
- digilentPcam 5C開發板的成像模塊介紹 2532次閱讀
- digilent Zynq-7000 ARM/FPGA SoC開發板介紹 2046次閱讀
- digilentZynq-7000 ARM/FPGA SoC開發板介紹 2723次閱讀
- 基于嵌入式Linux網絡計算機的操作系統的實現方法淺析 819次閱讀
- 對實時操作系統特性的討論 5039次閱讀
- Zybo Z7上OpenCV和SDSoC的結合 1875次閱讀
- 嵌入式操作系統是什么_嵌入式操作系統有哪些 2w次閱讀
- 如何設計一個小型嵌入式操作系統 9351次閱讀
- 簡要介紹了操作系統虛擬化的概念,以及實現操作系統虛擬化的技術 1.3w次閱讀
- 基于FreeRTOS的嵌入式實時操作系統的原理和實現 6562次閱讀
- Zybo全棧開發入門教程(基于Linux嵌入式系統):10個步驟自定義IP模塊 3696次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多