資料介紹
Genode 操作系統(tǒng)框架(通常稱為Genode )已經(jīng)存在了十多年,并且仍在積極開發(fā)中。它在通用 x86 硬件上得到最好的支持,因為我們在 Genode Labs 將它高效地用于我們的日常業(yè)務(wù)。但是,也有(部分)支持各種基于 ARM 的平臺。最近新增的功能是支持 Digilent 的 Zybo Z7 板。這是關(guān)于在 Zybo Z7-10 或 Zybo Z7-20 板上啟動非?;镜?Genode 場景的初學(xué)者級教程。
先決條件
對于 Genode 開發(fā),您需要一臺 Linux 主機。我建議使用 Ubuntu LTS,Genode 可以在其上輕松構(gòu)建。Genode 使用自己的工具鏈,必須手動安裝。您可以下載預(yù)構(gòu)建的工具鏈并使用以下命令進(jìn)行安裝:
$ sudo tar xPf genode-toolchain-
請確保按照入門指南熟悉 Genode 。這將確保您已安裝所有其他必需的構(gòu)建工具。
準(zhǔn)備 Zybo Z7 開發(fā)板
Zybo Z7 開發(fā)板附帶一個預(yù)安裝的演示應(yīng)用程序,該應(yīng)用程序存儲在板載閃存中。確保將跳線 JP5 設(shè)置為 QSPI 啟動并打開設(shè)備電源。演示應(yīng)用程序控制板載 LED 并通過 UART 接口發(fā)送一些字符。兩者都有助于檢查開發(fā)板是否正確啟動并測試 UART 連接。為了使用后者,將 Micro-USB 電纜連接到標(biāo)有“PROG UART”的連接器,將其連接到您的開發(fā)系統(tǒng)并打開電路板電源。/dev/ttyUSB1設(shè)備應(yīng)該會彈出。啟動您喜歡的終端程序(例如 picocom、screen)并按下重置按鈕以查看開發(fā)板的串行輸出。我喜歡按如下方式使用屏幕:
$ 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
創(chuàng)建構(gòu)建目錄
Genode 使用樹外構(gòu)建過程。因此,我們使用以下命令在~/genode/build/arm_v7a為我們的目標(biāo)平臺準(zhǔn)備一個構(gòu)建目錄:
~/genode$ ./tool/create_builddir arm_v7a
構(gòu)建目錄托管配置文件~/genode/build/arm_v7a/etc/build.conf需要進(jìn)行一些修改。
首先,我們必須告訴構(gòu)建系統(tǒng)使用 Zynq 存儲庫,這是通過取消注釋以下行來實現(xiàn)的:
REPOSITORIES += $(GENODE_DIR)/repos/zynq
其次,我們將設(shè)置一些變量,以節(jié)省我們稍后的輸入時間。
KERNEL ?= hw BOARD ?= zynq_zybo_z7 RUN_OPT += --depot-auto-update
構(gòu)建 SD 卡映像
接下來,我們將構(gòu)建一個 SD 卡映像。Genode 使用 u-boot 并方便地將所有內(nèi)容編譯成一個圖像。不過,在觸發(fā) make 命令之前,我們必須下載 u-boot 的第三方代碼。這是通過prepare_port工具完成的:
~/genode$ ./tool/ports/prepare_port zynq_uboot
現(xiàn)在,我們準(zhǔn)備構(gòu)建 SD 卡映像,如下所示:
~/genode$ RUN_OPT='--include image/zynq_uboot_sdcard' make -C build/arm_v7a run/log
此命令告訴 Genode 的構(gòu)建系統(tǒng)構(gòu)建運行/日志場景并包含圖像創(chuàng)建腳本。如果您對更多詳細(xì)信息感興趣,請參閱構(gòu)建系統(tǒng)文檔。請注意,我們還可以將定義添加到build.conf 中。但是,我想在以后跳過映像創(chuàng)建并在初始化 SD 卡后使用 TFTP 引導(dǎo)。構(gòu)建過程應(yīng)以以下行結(jié)束RUN_OPT
Created SD-card image file var/run/log.img
當(dāng)我將 SD 卡插入我的 Linux 主機時,會彈出一個/dev/mmcblk0設(shè)備。因此,我將創(chuàng)建的圖像寫入 SD 卡,如下所示:
~/genode$ sudo dd if=build/arm_v7a/var/run/log.img of=/dev/mmcblk0 bs=1M conv=fsync
將 SD 卡插入 Zybo 板,不要忘記將跳線 JP5 設(shè)置為 SD 啟動。打開設(shè)備電源,連接到串行控制臺(例如使用屏幕),然后按下重置按鈕。您應(yīng)該看到以下輸出:
[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 引導(dǎo)
由于我笨拙的手指不能很好地處理 micro SD 卡,所以我寧愿避免經(jīng)常觸摸它們。相反,我更喜歡網(wǎng)絡(luò)啟動。幸運的是,u-boot 支持通過 TFTP 加載圖像。我們 SD 卡上的 u-boot 安裝加載uEnv.txt文件(如果存在)并執(zhí)行uenvcmd命令。因此,我使用以下內(nèi)容設(shè)置了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 服務(wù)器可達(dá)的路徑。因為我沒有使用服務(wù)器--secure標(biāo)志,所以路徑是絕對路徑。否則,它必須相對于 TFTP 服務(wù)器的根目錄。
現(xiàn)在,我們需要告訴 Genode 的構(gòu)建系統(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)
請注意,這還會告訴構(gòu)建系統(tǒng)自動連接到串行控制臺。因此,我們可以運行需要主機系統(tǒng)評估日志輸出的測試場景,例如run/timer_accuracy:
~/genode$ make -C build/arm_v7a run/timer_accuracy
一旦出現(xiàn)“Terminal ready”,我們就可以點擊 Zybo 板的重置按鈕。如果一切設(shè)置正確,我們應(yīng)該看到如下輸出:
[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
恭喜,您已經(jīng)成功地為 Zybo Z7 開發(fā)板設(shè)置了 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的原理與移植實現(xiàn)
- 嵌入式實時操作系統(tǒng)FreeRTOS在ARM7上移植實現(xiàn)
- 嵌入式操作系統(tǒng)FreeRTOS的原理實現(xiàn)
- STEP7與Windows操作系統(tǒng)的兼容性 6次下載
- 單片機編程和操作系統(tǒng)綜述 40次下載
- 如何實現(xiàn)一個微內(nèi)核操作系統(tǒng)的設(shè)計 28次下載
- 如何使用物聯(lián)網(wǎng)操作系統(tǒng)Zephyr實現(xiàn)“連續(xù)集成”開源軟件的詳細(xì)說明
- Linux操作系統(tǒng)下C語言編程入門.pdf 96次下載
- RTOS操作系統(tǒng) 0次下載
- Linux操作系統(tǒng)原理及應(yīng)用 0次下載
- 操作系統(tǒng)技巧使用大全
- 深度解析全球操作系統(tǒng)格局 1270次閱讀
- 詳解實時操作系統(tǒng)和非實時操作系統(tǒng) 4959次閱讀
- 基于pSoSystem操作系統(tǒng)實現(xiàn)通用網(wǎng)絡(luò)代碼框架的設(shè)計 2127次閱讀
- 基于Linux等不同操作系統(tǒng)實現(xiàn)異構(gòu)系統(tǒng)的設(shè)計 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的結(jié)合 1933次閱讀
- 嵌入式操作系統(tǒng)是什么_嵌入式操作系統(tǒng)有哪些 2w次閱讀
- 如何設(shè)計一個小型嵌入式操作系統(tǒng) 9509次閱讀
- 國產(chǎn)操作系統(tǒng)究竟哪里不行_國產(chǎn)操作系統(tǒng)為何難普及 1.3w次閱讀
- 簡要介紹了操作系統(tǒng)虛擬化的概念,以及實現(xiàn)操作系統(tǒng)虛擬化的技術(shù) 1.3w次閱讀
- 基于FreeRTOS的嵌入式實時操作系統(tǒng)的原理和實現(xiàn) 6715次閱讀
- Zybo全棧開發(fā)入門教程(基于Linux嵌入式系統(tǒng)):10個步驟自定義IP模塊 3872次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 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十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多