日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

atmega8a如何烧写程序_如何让树莓派4上固件的debug日志输出到串口?

發布時間:2024/10/5 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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_2ndstage
    Setting?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。
    國內小伙伴可以從清華源中下載。

  • //mirrors.tuna.tsinghua.edu.cn/raspberry-pi-os-images/raspios_arm64/images/raspios_arm64-2020-08-24/

    下載完成之后,使用燒寫工具把image 燒寫到MircoSD里,在windows下可以使用Win32DiskImager 軟件來進行燒錄,Linux主機可以使用dd命令。

  • 修改MircoSD卡中boot分區里面的config.txt配置文件,在這個文件里新增兩行。

  • 1
  • 把MircoSD插回到樹莓派4上,開機。

  • 配置樹莓派4上的wifi。可以使用樹莓派上的配置工具.

  • $?sudo?raspi-config

    選擇“Network Options”來配置WIFI密碼等。

  • 更新軟件包。
    樹莓派4上的SPI BootRom固件是在rpi-eeprom這個軟件包里,第二階段的固件start4.elf是在raspberrypi-bootloader軟件包里。
    這兩個軟件包更新之后,會自動把最新的BootRom固件燒寫到SPI EEPROM里,并且更新start4.elf到MicroSD的boot分區。
    我們最好是全系統的更新軟件包。

  • sudo?apt?update
    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日志输出到串口?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。