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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

友善之臂 NANO T3 运行裸机程序

發布時間:2023/12/16 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 友善之臂 NANO T3 运行裸机程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、NANO T3的資源特性。

? ? NANO?T3使用?三星的S5P6818作為片上SOC(即CPU)。S5P6818基于contex-A53內核,該內核有2個內存控制器(Memory Controller),其特性如下:

MCU-A features:
? MCU-A is organized DREX and DDRPHY
? Supports DDR3/LVDDR3 (Low Voltage DDR3)/LPDDR3/LPDDR2 memory
? Supports 8/16/32-bit SDRAM of 2 GByte
? Single Bank of Memory (32-bit data bus width)
? Supports Power down mode

? Supports Self Refresh mode

MCU-S features:

? Static memory
? Two Static Memory Chip Selects
? NAND Flash Interface
? 23-bit address supports using latch address
? SLC NAND, MLC NAND with ECC (Supports BCH-algorithm)

? Static Memory Map Shadow

S5P6818內存映射如下:

從上圖我們可以知道以下重要信息:

1、S5P6818自帶SRAM,起始地址是: 0xffff 0000

2、S5P6818可以使用DDR作為內存,最大容量 2GB,起始地址為:0x4000 0000.

?

二、NANO T3的上電啟動過程:

1、開發板上電后,首先啟動的是?ROMboot?引導程序,該程序被燒錄在板上的EEPROM上,由板子的開發商提供。

2、ROMboot執行過程中,會根據用戶的選擇從不同外設加載代碼,對于NANO T3,如果沒有按下boot鍵,則從EMMC加載代碼,如果按下boot鍵,從SD卡加載代碼,可以從官方wiki知道詳細步驟。

3、我們要將裸板程序燒錄到SD卡,SD卡的程序由2或三部分組成:

? ? (1)直接在板內SRAM運行程序

????? ? 此時先燒錄nsih程序(后面稱為1stboot),這個程序占用200字節空間,由官方提供,之后再跟上用戶自己的程序。

? ? (2)驅動板上DDR,跳轉到外部內存上運行

????? ? 此時代碼結構為 1stboot + 2ndboot +?用戶程序,2ndboot?同樣由官方提供,官方還提供一個工具(mk6818)將這些代碼連接起來。

?

三、編寫匯編程序

1、使用內部sram?的匯編程序(驅動LED)

由于1stboot?占用512字節空間,用戶程序從 0xffff 0200開始

這里僅提供Makefile的編寫代碼,用戶程序讀者可到我最后附上的鏈接查看:

led.bin:led.Sarm-none-eabi-gcc -o led_s.o -c led.Sarm-none-eabi-ld -Ttext=0xffff0200 led_s.o -o led_s_elfarm-none-eabi-objcopy -I elf32-littlearm -O binary led_s_elf led_s.bin./mk6818.exe led_s_pak.bin nsih.txt led_s.binclean:rm -f led_s_pak.bin led_s.bin led_s_elf *.o

這里用到的文件:led.S、Makefile、mk6818.exe、nsih.txt

注意:因為1stboot(即nsih.txt文件,其會被mk6818轉換為機器代碼)需要512字節空間,所以用戶程序從0xffff 0200開始執行。

?

2、使用DDR作為內存

程序會跳轉到DDR上執行,起始地址 0x43c0 0000(這是由2ndboot?指定的),附Makefile:

led.bin:led.Sarm-none-eabi-gcc -o led_s.o -c led.Sarm-none-eabi-ld -Ttext=0x43c00000 led_s.o -o led_s_elfarm-none-eabi-objcopy -I elf32-littlearm -O binary led_s_elf led_s.bin./mk6818.exe led_s_pak.bin nsih.txt 2ndboot led_s.binclean:rm -f led_s_pak.bin led_s.bin led_s_elf *.o

文件增加了2ndboot。沒錯,它是DDR的驅動程序,這樣我們就可以使用ddr了。

四、將程序燒錄到SD卡(這里只演示在DDR上執行的程序)

1、需要先準備編譯器,配置好環境變量,這些都參照官方wiki

2、目錄文件:

3、編譯程序:

led_s_pak.bin是最終要燒錄到SD卡的可執行程序

4、燒錄到SD卡,運行結果:

燒錄方法:使用winhex工具:?

選擇工具->打開磁盤->選擇要燒錄的sd卡

標記200~10000的區域,選擇以00填充

打開編譯得到的led_s_pak.bin,全選,以16進制復制

回到sd卡頁面,標記200位置,右鍵->編輯->寫入

保存扇區,將SD卡插入NANO-T3,按住boot鍵然后打開電源,可以看到led燈在來回閃爍。

五、代碼和工具下載

代碼下載地址:

https://github.com/ccyxchen/NANO-T3-LED

編譯器下載地址:

git clone https://github.com/friendlyarm/prebuilts.git

板子的官方wiki:

http://wiki.friendlyarm.com/wiki/index.php/NanoPC-T3/zh#.E5.BF.AB.E9.80.9F.E4.BB.8ESD.E5.8D.A1.E5.90.AF.E5.8A.A8

winhex破解版:

https://download.csdn.net/download/ccyxchen/10327169

?

總結

以上是生活随笔為你收集整理的友善之臂 NANO T3 运行裸机程序的全部內容,希望文章能夠幫你解決所遇到的問題。

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