–
鏈結就是將所有的.o檔案鏈結到一起,並鏈結到指定的位置,本實驗鏈結時要指定連線起始位址。
鏈結起始位址就是**執行的起始位址,有可能是儲存**的起始位址
對於6ull來說,鏈結起始位址由我們自己來指定,cortex a系列的晶元內部有rom,都沒有flash,但rom不能用。所以應該指向ram位址。ram分為 內部ram 和 外部ram(ddr),6ull內部有128k的ram(0x900000 - 0x91ffff);也可以放到外部ddr中;對於imx-6ull alpha 開發板,ddr(512mb)的範圍就是0x8000 0000 - 0x9fff ffff。我們選擇存到ddr,內部ram128k容量小可能以後會不夠用 。
裸機**的起始位址設定為0x8780 0000,和後面的uboot起始鏈結位址統一起來
要使用ddr,必須要初始化ddr。但在本章可見的**中
對於imx-6ull,bin檔案不能直接執行,需要新增乙個頭部,這個頭部資訊包含了ddr的初始化引數。imx系列soc內部boot rom(一段**,晶元廠商寫的)會從sd卡,emmc等外接儲存中讀取頭部資訊,然後初始化ddr,並且將bin檔案拷貝到指定的地方(鏈結起始位址)
bin的執行位址一定要和鏈結起始位址一致,位置無關**除外–
燒寫不是單純地將bin檔案拷貝到sd卡中,而是將bin檔案放到sd卡指定的物理/絕對位址上
對imx.6ull而言,不能直接燒寫bin檔案,必須現在bin檔案前新增頭部,然後在燒寫,完成這個工作,需要使用imxdownload軟體
imxdownload使用方法:確定要燒寫的sd卡檔案,本次是/dev/sdb1
chmod 777 imxdownload
燒寫 ./imxdownload led.bin /dev/sdb
燒寫log如下圖,注意速度
IMX6ULL驅動學習 Linux自帶LED驅動
裝置操作 linux 核心整合了led驅動,採用platform框架,我們只需要在編譯核心時選擇led驅動,在裝置樹檔案中新增led節點即可。make menuconfig device drivers led support new leds y led support for gpio conn...
IMX6ULL裸機第一次彙編點亮LED
部落格介紹 硬體 正點原子linux開發板im6ull 開發環境 ubuntu下的vscode 功能 配置引腳gpio1 io03驅動led的亮滅。參考 imx6ull串列埠手冊.pdf i.mx6u 嵌入式 linux 驅動開發指南 v1.3.pdf leds.s檔案 檔案功能 使用彙編點燈 使用...
IMX6DL 彙編點亮LED燈
除錯uboot使用led閃爍去標註程式執行到 是乙個不錯的方法,在移植uboot的時候,沒有列印,所以需要新增led閃爍彙編,網上資料不知道為什麼這麼少,成功之後需要記錄。晶元 imx6u5d led燈 d6 原理圖可以知道,需要控制gpio引腳key row6,高電平點亮,低電平熄滅。引腳key ...