導航:首頁 > 源碼編譯 > led交叉編譯

led交叉編譯

發布時間:2022-09-21 00:02:45

A. gcc一個led驅動,說沒有linux/moles頭文件,然後我去make moles_install,說沒又arm-linux-gcc,但我裝了

沒有找到mole.h這個頭文件,一般是你的內核地址不對。你需要看你編譯的內核地址是否正確。

B. linux如何編譯arm-2440的led跑馬燈程序不是編譯驅動程序

這是一個很簡單的問題。使用ads生成二進制文件的時候會直接可執行的二進制文件的頭去掉。如程序的執行地址,鏈接地址等等信息被去掉。但是在linux上你使用的arm-linux-gcc編譯過後產生的只是linux 系統的可執行二進制文件,它能夠被linux 內核所識別。但是他們不能直接作為裸板程序直接被開發板所執行。除了使用arm-linux-gcc 以外還要使用兩個命名arm-linux-ld 和 arm-linux-obj 才能生成能直接被裸板執行的代碼

原文地址:http://www.ebhou.com/post/armtest.html

今天在空間看到一個關於arm裸板代碼的問題。這個問題對於老鳥來說都是簡單得不能再簡單的問題了。可是當時確把我給難住了,以前學習的時候沒有少些過裸板代碼。自己的電腦上至今還保留著lcd,觸摸屏和 音效卡的裸板驅動。才1年多點時間盡然自己只知道分三不,編譯、鏈接、去掉elf頭。而具體的步驟盡然只知道gcc 另外兩部的命名盡然不知道參數是什麼。慚愧啊!

今天保留過程於此。

做備忘只用,如果能夠幫助到任何人那就不虛此寫啊。

看過編譯原理的人都知道我們一句簡單的arm-linux-gcc 到達做了哪些工作。他並不是簡單的把我們的原文件編譯成我們可執行的二進制文件,在這個過程中他其實至少做了兩部工作。「編譯」和鏈接「當然這其中包含了很多關於編譯原理的至少,由於本人才疏學淺說以也只能夠簡單的把他說成編譯和鏈接了。如果需要跟深入的理解請查找相關」編譯原理的書籍吧「

這里我們先介紹一下常用的gcc命令.

1.arm-linux-gcc -v 查看gcc 版本號

2.arm-linux-nm 查看一個.o文件所需要的庫。

3.arm-linux-ld 鏈接命令

3.arm-linux-gcc 編譯命令

4 arm-linux-objmp -h test 查看符號

-d 反匯編

5 arm-linux-as ls.S -o ls.o 將匯編原文件編譯成.o文件

6 arm-linux-obj -I elf32-littlearm -O binary test test.bin 去掉二進制文件elf頭。

現在我們來寫一個arm裸板的LED閃燈程序 非常簡單的。

源代碼 led_test.c

void main()
{
int i=0;
volatile long *GPKCON0 = 0x7F008800;
volatile long *GPKDAT = 0x7F008808;
volatile long *GPKPUD = 0x7F00880C;

*GPKCON0 &= ~(0XFFFF <<16);
*GPKCON0 |= (0X1111 <<16);
while(1){
*GPKDAT &= ~(0XF <<4);
i=0xfffff;
while(i--)
;
*GPKDAT |= (0XF <<4);
i=0xfffff;
while(i--)
;
}
}

每隔大概3秒鍾的時間LED閃爍一次。非常簡單的一個程序。這里沒有使用定時器啊 什麼的知識簡單的做循環來延時。注意 關於LED 的GPIO相關寄存器地址根據你自己的實際情況來。

編譯過程

1 編譯

arm-linux-gcc -c -march=armv4 test.c -o test.o

2.鏈接 http://www.ebhou.com/post/armtest.html

C. linux交叉編譯生成的文件如何下載。

要把東西下到NOR FLASH要用JTAG吧,如果要驗證可執行程序,下到NAND FLASH就好啦。下到NAND FLASH我一般用的是NFS傳

D. 基於LPC2124LED流水燈C程序設計

如果單片機16個腳,那麼用兩層循環或者取余數搞定。兩層循環i=0;無限循環{循環i=0 到i=15{ 點亮發光管i 延時(由你定) 熄滅發光管i}}

E. 怎麼在linux下編譯驅動程序我我按照別人寫的LED啟動程序,用交叉編譯器arm-linux-gcc編譯,總提示找不到

不改MAKEFILE文件,當然不能編譯了,Linux的驅動就是這么搞的啊,沒辦法的,反正是批處理的,也就多花點時間嘛,你可以把一些不需要的驅動,選擇不編譯,這樣就能加快速度了。給你個辦法,在Windows虛擬機中安裝交叉編譯環境,你可以在Windows下編輯你的程序,Linux只起到編譯的作用,這樣,兩個工作可以同時進行,有空你還可以上上網,這樣你就不覺得時間長了。

F. linux 交叉編譯器可以編寫一個控制arn開發板led燈的程序嗎

必須可以的
要不要操作系統幹嘛啊
先在arm上上系統
然後在linux電腦上編寫程序
其實就是驅動哈
交叉編譯
移植
執行
ok

G. riotboard 使用什麼交叉編譯工具鏈

不需要改源碼Makefile,只要在你的驅動目錄下配置好Makefile裡面的源碼樹路徑就行了。

obj-m := led_ko.o
KDIR := /home/zs5577517/ti-ezsdk_dm816x-evm_5_03_01_15/board-support/linux-2.6.37-psp04.00.01.13.patch2
all:
make -C $(KDIR) M=$(PWD) moles ARCH=arm CROSS_COMPILE=/home/zs5577517/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-
clean:
rm -f *.ko *.o

H. 我在ubuntu9。04下,用arm-linux-gcc 交叉編譯了一個led驅動程序。引用的內核源碼放在/usr/src/linux2.6

如果你要編譯一個 驅動 首先你那個 linux內核事編譯好的。makefile 裡面耀指向你的linux內核目錄
你在試試

I. 嵌入式的一些基本問題

學Linux你以為只是亮個燈,寫個IO口什麼的啊。這些都只是嵌入式系統的皮毛而已,實話告訴你底層的最難,嵌入式領域驅動和硬體這塊最麻煩。看來你基本不懂。
嵌入式復雜之處在於處理器可以不同,linux操作系統不同,移植絕對是難點。led照樣可以寫成你看不懂的形式。
gcc基本不用,用交叉編譯器arm-gcc或者其他的gcc,Makefile你肯定沒有寫過,寫過的話夠你學很久。
led燈告訴你基本的驅動開發。但是驅動遠遠沒有這么簡單。呵呵,這是最最最簡單的。
至於把開發板做成路由,你指的是無線還是什麼,這裡面涉及到網卡驅動,網路編程,因為沒坐過這塊所以也不好說,就這些吧,希望對你有幫助

J. linux 驅動交叉編譯問題。

不需要改源碼Makefile,只要在你的驅動目錄下配置好Makefile裡面的源碼樹路徑就行了。

obj-m := led_ko.o
KDIR := /home/zs5577517/ti-ezsdk_dm816x-evm_5_03_01_15/board-support/linux-2.6.37-psp04.00.01.13.patch2
all:
make -C $(KDIR) M=$(PWD) moles ARCH=arm CROSS_COMPILE=/home/zs5577517/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-
clean:
rm -f *.ko *.o

閱讀全文

與led交叉編譯相關的資料

熱點內容
雞料與雞糞的演算法 瀏覽:833
phpif變數為空值 瀏覽:59
iot編譯器異常 瀏覽:600
代理伺服器被禁用怎麼上網 瀏覽:411
隱私加密怎麼設置密碼 瀏覽:940
馬丁靴補色解壓 瀏覽:565
在設置app上怎麼找到個人熱點 瀏覽:754
按照檔案號生成文件夾 瀏覽:1000
程序員轉方向 瀏覽:111
lol敏捷加密 瀏覽:882
傳統公司眼中的加密貨幣 瀏覽:430
電腦圖標又出現文件夾怎麼去掉 瀏覽:964
排序演算法c和a 瀏覽:418
手機拍照上傳android 瀏覽:343
linux壓縮率 瀏覽:614
電腦瀏覽器加密埠 瀏覽:536
單片機線性電源 瀏覽:268
韓國雲伺服器評測 瀏覽:740
python輸出hello 瀏覽:594
如何在最左側添加文件夾 瀏覽:500