atmega8a如何烧写程序_如何让树莓派4上固件的debug日志输出到串口?
第三季奔跑吧旗艦篇視頻課程:arm64體系結構與編程2020年10月1號重磅上線笨叔帶隊,以練帶學,幾十個實驗,等您來擼!
樹莓派4上的FW
我們玩過樹莓派的小伙伴都知道,樹莓派4上有幾個固件,我們是需要把這些固件拷貝到MicroSD卡里的,這些固件包括如下幾個文件。
bootcode.bin:引導程序。樹莓派復位上電時,CPU處于復位狀態,由GPU來負責啟動系統。GPU首先會啟動固化在芯片內部的固件(BootROM代碼),讀取MicroSD卡中的bootcode.bin文件,并裝載和運行bootcode.bin中的引導程序。樹莓派4B已經把bootcode.bin引導程序固化到SPI Boot EEPROM里。
start4.elf:樹莓派4上的GPU固件。bootcode.bin引導程序檢索MicroSD卡中的GPU固件,加載固件并啟動GPU。
start.elf:樹莓派3上的GPU固件。
config.txt:配置文件。GPU啟動后讀取config.txt配置文件,讀取Linux內核映像(比如kernel8.img等)以及內核運行參數等,然后把內核映像加載到共享內存中并啟動CPU,CPU結束復位狀態開始運行Linux內核。
在樹莓派官方文檔里提到,把config.txt配置文件中的uart_2ndstage設置為1就能把第二階段的start4.elf的固件的debug log信息打印到串口。
uart_2ndstageSetting?uart_2ndstage=1?causes?the?second-stage?loader
?(bootcode.bin?on?devices?prior?to?the?Raspberry?Pi?4,
?or?the?boot?code?in?the?EEPROM?for?Raspberry?Pi?4?devices)
?and?the?main?firmware?(start*.elf)?to?output?diagnostic
?information?to?UART0.
我們嘗試在config.txt配置文件中的uart_2ndstage設置為1,但是start4依然只是打印一句話,并沒有打印出debug log。
Starting?start4.elf上面這句話打印之后,需要停頓幾十秒才能顯示Linux內核的日志,所以,為了方便調試BenOS,我們需要找一個方法來把start4.elf的debug log打印到串口里。
打開start.elf的debug日志
我們從樹莓派官網得知,2020年8月20號發布的SPI BootRom固件已經支持了這個功能,另外還需要搭配最新的start4.elf固件,即2020年9月3號發布的。
接下來,我們告訴小伙伴如何更新樹莓派4上的固件。
下載一個最新的樹莓派OS,一定是要Raspberry Pi OS,不要使用第三方的樹莓派OS,例如ubuntu for Raspberry Pi。
國內小伙伴可以從清華源中下載。
下載完成之后,使用燒寫工具把image 燒寫到MircoSD里,在windows下可以使用Win32DiskImager 軟件來進行燒錄,Linux主機可以使用dd命令。
修改MircoSD卡中boot分區里面的config.txt配置文件,在這個文件里新增兩行。
把MircoSD插回到樹莓派4上,開機。
配置樹莓派4上的wifi??梢允褂脴漭缮系呐渲霉ぞ?
選擇“Network Options”來配置WIFI密碼等。
更新軟件包。
樹莓派4上的SPI BootRom固件是在rpi-eeprom這個軟件包里,第二階段的固件start4.elf是在raspberrypi-bootloader軟件包里。
這兩個軟件包更新之后,會自動把最新的BootRom固件燒寫到SPI EEPROM里,并且更新start4.elf到MicroSD的boot分區。
我們最好是全系統的更新軟件包。
sudo?apt?full-upgrade
sudo?reboot
更新完成之后,我們reboot機器。我們就能看到久違的start4.elf的debug日志了。
0xfec00200?partition?上面是啟動Linux內核的日志,接下來我們把MicroSD卡拷貝BenOS的實驗代碼的bin文件。
0xfec00200?partition?上面是啟動BenOS的日志,其中如下日志對我們調試有幫助。
00:上面日志告訴我們,固件讀取了SD卡里的benos4.bin,其中benos4.bin是我們編寫的BenOS的二進制文件,并且把benos加載到0x80000的地址,這些信息對我們調試BenOS非常有幫助。
第三季旗艦篇視頻課程:ARM64體系結構與編程,2020年10月1號上線。
上線地址:
淘寶店:shop115683645.taobao.com
第三季視頻預覽片:
https://space.bilibili.com/277836343/channel/detail?cid=149997
總結
以上是生活随笔為你收集整理的atmega8a如何烧写程序_如何让树莓派4上固件的debug日志输出到串口?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 18款帝豪gl车机升级_好看又实用的20
- 下一篇: python爬虫实训心得_Python爬