當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]具體內(nèi)容: ?首先需要安裝macports安裝完成后我們使用命令:callondeMacBook-Pro:~?callon$?sudo?port?install?libelf Password: Er


具體內(nèi)容: ?
首先需要安裝macports
安裝完成后我們使用命令:

callondeMacBook-Pro:~?callon$?sudo?port?install?libelf
Password:
Error:?Port?libelf?not?found

居然是沒有找到,原因是我們需要更新macports:

callondeMacBook-Pro:~?callon$?sudo?port?-v?selfupdate
--->??Updating?MacPorts?base?sources?using?rsync
receiving?file?list?...?done
base.tar

sent?31276?bytes??received?223560?bytes??8090.03?bytes/sec
total?size?is?27013120??speedup?is?106.00
receiving?file?list?...?done

--->??MacPorts?base?is?already?the?latest?version

The?ports?tree?has?been?updated.?To?upgrade?your?installed?ports,?you?should?run
??port?upgrade?outdated
callondeMacBook-Pro:~?callon$?
callondeMacBook-Pro:~?callon$?sudo?port?upgrade?outdated
Password:
Nothing?to?upgrade.
callondeMacBook-Pro:~?callon$?sudo?port?search?libelf
libelf?@0.8.13_2?(devel)
????ELF?object?file?access?library

py-pylibelf?@0.1.20110915?(python,?devel)
????Pythonic?wrapper?for?the?libelf?library.

py27-pylibelf?@0.1.20110915?(python,?devel)
????Pythonic?wrapper?for?the?libelf?library.

Found?3?ports.

此時(shí)就說明我們可以正常使用macports安裝軟件了,下面開始正式操作:

callondeMacBook-Pro:~?callon$?sudo?port?install?libelf

出現(xiàn):

--->??Installing?libelf?@0.8.13_2
--->??Activating?libelf?@0.8.13_2
--->??Cleaning?libelf
--->??Updating?database?of?binaries
--->??Scanning?binaries?for?linking?errors???????????????
--->??No?broken?files?found.

即為安裝成功。
同理:

callondeMacBook-Pro:~?callon$?sudo?port?install?gsed
callondeMacBook-Pro:~?callon$?sudo?port?install?arm-elf-binutils
callondeMacBook-Pro:~?callon$?sudo?port?install?arm-elf-gcc

此時(shí)我們的裸機(jī)編譯環(huán)境其實(shí)就搭建好了,但是我們需要把裸機(jī)makefile的所有之前用的arm-linux-xxx換成現(xiàn)在的arm-elf-xxx即可!

callondeMacBook-Pro:hkl-continue?callon$?make?clean
rm?-f?*.o?*.elf?*.bin
make?-C?dev?clean
rm?-f?*.o???????
make?-C?lib?clean
rm?-f?*.o???????
callondeMacBook-Pro:hkl-continue?callon$?make
arm-elf-gcc?-g?-c?start.S
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?main.c
make?-C?dev?all
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?mmu.c
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?interrupt.c
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?gpio.c
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?uart.c
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?nandflash.c
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?lcd.c
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?dma.c
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?bmp.c
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?bmpp.c
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?timer.c
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?touch.c
arm-elf-ld?-r?-o?dev.o?mmu.o?interrupt.o?gpio.o?uart.o?nandflash.o?lcd.o?dma.o?bmp.o?bmpp.o?timer.o?touch.o
arm-elf-gcc?-g?-c?mem.S
make?-C?lib?all
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?div64.S
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?lib1funcs.S
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?ctype.c
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?muldi3.c
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?printf.c
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?string.c
arm-elf-gcc?-g?-fno-builtin?-I/Users/callon/Desktop/hkl-continue/include?-c?vsprintf.c
arm-elf-ld?-r?-o?lib.o?div64.o?lib1funcs.o?ctype.o?muldi3.o?printf.o?string.o?vsprintf.o
arm-elf-ld?-Thkl.lds?-o?hkl_boot.elf?start.o?main.o?dev/dev.o?mem.o?lib/lib.o
arm-elf-objcopy?-O?binary?hkl_boot.elf?hkl_boot.bin
arm-elf-objdump?-D?-S?hkl_boot.elf?>?dump
callondeMacBook-Pro:hkl-continue?callon$?ls
Makefile????hkl.lds?????include?????main.o??????start.S
dev?????hkl_boot.bin????lib?????mem.S???????start.S~
dump????????hkl_boot.elf????main.c??????mem.o???????start.o

同樣的嘗試了安裝arm-none-eabi-工具鏈,也能編譯裸機(jī)代碼:

callondeMacBook-Pro:s3c-linux-2.6.28.6-Real6410?callon$?sudo?port?install?arm-none-eabi-gcc

但是編譯不了內(nèi)核,總會出現(xiàn)莫名其妙的問題。

***最后現(xiàn)象總結(jié):***
arm-none-eabi- 能夠編譯內(nèi)核模塊,能夠編譯裸機(jī)代碼,但是在編譯應(yīng)用程序會出錯(cuò):

callondeMacBook-Pro:key_irq_misc?callon$?arm-none-eabi-gcc?-static?key_app.c?-o?key_app
key_app.c:?在函數(shù)‘main’中:
key_app.c:9:8:?警告:隱式聲明函數(shù)‘open’?[-Wimplicit-function-declaration]
???fd?=?open("/dev/6410key",0);
????????^
key_app.c:11:3:?警告:隱式聲明函數(shù)‘read’?[-Wimplicit-function-declaration]
???read(fd,?&key_num,?4);
???^
key_app.c:15:3:?警告:隱式聲明函數(shù)‘close’?[-Wimplicit-function-declaration]
???close(fd);
???^
/opt/local/lib/gcc/arm-none-eabi/5.1.0/../../../../arm-none-eabi/bin/ld:?cannot?find?crt0.o:?No?such?file?or?directory
collect2:?錯(cuò)誤:ld?返回?1

arm-elf- 能夠編譯出應(yīng)用程序和裸機(jī)代碼:

callondeMacBook-Pro:key_irq_misc?callon$?arm-elf-gcc?-static?key_app.c?-o?key_app
callondeMacBook-Pro:key_irq_misc?callon$?ls

但是編譯不了內(nèi)核模塊:

callondeMacBook-Pro:key_irq_misc?callon$?make
make?-C?/Users/callon/Documents/s3c-linux-2.6.28.6-Real6410?M=/Users/callon/Desktop/key_irq_misc?modules?CROSS_COMPILE=arm-elf-?ARCH=arm
??CC?[M]??/Users/callon/Desktop/key_irq_misc/key.o
/Users/callon/Desktop/key_irq_misc/key.c:1:0:?error:?FPA?is?unsupported?in?the?AAPCS
make[2]:?***?[/Users/callon/Desktop/key_irq_misc/key.o]?Error?1
make[1]:?***?[_module_/Users/callon/Desktop/key_irq_misc]?Error?2
make:?***?[all]?Error?2

最后還有一種交叉編譯工具:
參考http://blog.csdn.net/rk2900/article/details/8738442

新建一個(gè)磁盤映像:
磁盤工具->文件->新建映像->空白映像

有時(shí)你的磁盤映像還是不區(qū)分大小寫,你可以在磁盤映像下建立兩個(gè)readme和Readme文件夾來測試,如果的確還是不區(qū)分,就磁盤工具選擇:磁盤映像->抹掉

再操作一次就完全正確了,你可以進(jìn)行測試。
然后將下載好的ARMx-2009q3-67.tar.bz2,鏈接在參考的blog中有提到,這里再啰嗦一下:
https://github.com/downloads/UnhandledException/ARMx/ARMx-2009q3-67.tar.bz2
拷貝到磁盤映像下,執(zhí)行命令:

最后修改/etc/profile把path環(huán)境變量修改了,然后source /etc/profile即可!

最后修改內(nèi)核代碼中.config或者M(jìn)akefile里對CROSS_COMPILE的定義,改成arm-none-linux-gnueabi-即可,此時(shí)就可以進(jìn)行內(nèi)核代碼編譯了:


編譯完內(nèi)核再編譯內(nèi)核模塊也就不會有莫名其妙的問題了:

成功!
但是裸機(jī)代碼拿arm-none-linux-gnueabi- 編譯會有問題。

此博文得到的結(jié)論均為實(shí)踐與查找資料所得,僅供參考。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉