日韩成人激情_欧美黑人xxx_国产一区二精品区在线_精品在线一区_97成人资源_久久久久久一区

產(chǎn)品分類(lèi)

當(dāng)前位置: 首頁(yè) > 工業(yè)電子產(chǎn)品 > 其他電子產(chǎn)品 > 開(kāi)發(fā)板,套件,編程器 > 開(kāi)發(fā)板

類(lèi)型分類(lèi):
科普知識(shí)
數(shù)據(jù)分類(lèi):
開(kāi)發(fā)板

Atheros SDK研究與使用

發(fā)布日期:2022-10-14 點(diǎn)擊率:49

最近空閑時(shí)間很多,索性研究起了Atheros SDK。正如很多讀者所知道的, 筆者本人并非軟件出身,所以很基礎(chǔ)的問(wèn)題在我看來(lái)都很高深,Atheros的SDK也同樣如此,看了1,2天代碼,我總算研究清楚怎樣使用,后續(xù)爭(zhēng)取將我的研究與使用成果在這里與讀者分享。第一階段的研究目的是如何將自己需要的軟件一同編譯,最終可以在目標(biāo)板上運(yùn)行,本文也正是圍繞著這樣的主題展開(kāi)。

Atheros SDK初體驗(yàn)

這次使用的Atheros SDK版本是LSDK-9.2.0,使用的板子是 筆者自己設(shè)計(jì)的基于AR9344的大功率無(wú)線AP。按照官方文檔中的說(shuō)明,將源代碼解壓至工作目錄,如下圖。

SourceCode-Directory

然后進(jìn)入build目錄運(yùn)行如下命令

make BOARD_TYPE=db12x BUILD_TYPE=jffs2

因?yàn)槭堑谝淮问褂茫枰幾g工具鏈,所以耗費(fèi)的時(shí)間很長(zhǎng),好在編譯過(guò)程中沒(méi)有出現(xiàn)任何問(wèn)題,順利地完成了全部的編譯過(guò)程,并得到了最終的二進(jìn)制文件,如下圖。

Images-Built

將得到的二進(jìn)制文件燒寫(xiě)至Flash,板子可以正常啟動(dòng),說(shuō)明以上的操作都是正確的。

變更Flash容量

由于我的設(shè)計(jì)是16MB Flash,與db12x默認(rèn)的8MB Flash不符,因此需要更改源代碼,將Flash配置為16MB。經(jīng)過(guò)了一段時(shí)間的摸索,發(fā)現(xiàn)Flash容量定義在了以下文件中

boot/u-boot/include/configs/db12x.h

將其中的的第12行變更為

#define FLASH_SIZE16

再次編譯,燒寫(xiě)得到的二進(jìn)制文件,發(fā)現(xiàn)在u-boot中已經(jīng)正確地識(shí)別為16MB Flash。

分析Makefile

接下來(lái)研究如何將自己編寫(xiě)的代碼編譯成為可執(zhí)行文件,并在目標(biāo)板中運(yùn)行。在通讀了build目錄中的Makefile文件后,發(fā)現(xiàn)其會(huì)包含build/scripts目錄下相應(yīng)的Makefile,這樣只需要變更build/scripts/db12x下的Makefile即可更改編譯進(jìn)來(lái)的軟件。按照Atheros官方的注釋?zhuān)彩侨绱?/p>

# Adding make instructions:

# Usually board/scripts/<target> is the correct place to do this.

# IMPORTANT: all "make targets" which add to $(INSTALL_ROOT)

再來(lái)分析build/scripts/db12x/Makefile.db12x文件,發(fā)現(xiàn)其最開(kāi)始的一段輸出了較多的環(huán)境變量,例如

export HAL=$(TOPDIR)/drivers/wlan/hal

export ENETDIR=$(TOPDIR)/linux/drivers/ethernet

分析這樣做的好處是方便后續(xù)軟件版本的變更及增加代碼的可讀性,我在這里面加了一行

export TOM_DIR=$(TOPDIR)/apps/tom

這樣,我就可以將自己的代碼放在tom目錄下。

build/scripts/db12x/Makefile.db12x中定義了多個(gè)編譯模塊(暫時(shí)這樣稱(chēng)呼,因?yàn)槲疫€不知道其專(zhuān)有名詞),例如iptables_build,samba_build等,這些編譯模塊中的大部分又統(tǒng)一放置于common_mainline中,然后根據(jù)/build/scripts/db12x/config.db12x中相應(yīng)的配置決定啟用哪些編譯模塊,例如本例中config.db12x設(shè)定BUILD_ATHR_HOSTAP為1,則根據(jù)條件判斷語(yǔ)句編譯如下模塊:

common_mainline: check_tftp rootfs_prep toolchain_build
kernel_build kernel_info enet_build busybox_build athr-hostapd athr-wpa_supplicant
sar cgi lzma_uimage uboot_mainline samba_build
ntfs3g_build $(stage2_build)

到這里,相信讀者也一定知道怎樣將自己的代碼編譯進(jìn)去了,將自己的代碼仿照apps/tom目錄下,在build/scripts/db12x/Makefile.db12x定義一個(gè)唯一的模塊如tom_build,并將tom_build添加到common_mainline中即可。

Hello World

按照以上思路,將hello.c放在apps/tom目錄下,hello.c的代碼內(nèi)容如下

#include <stdio.h>
int main() {
printf("Hello Worldn");
return 0;
}

定義tom_build如下

tom_build:
@echo making Toms Hello World
sleep 60
cd $(TOM_DIR) &&
$(TOOLPREFIX)gcc hello.c -o hello &&
cp hello $(INSTALL_ROOT)/sbin/hello

再次編譯,可以看到正在編譯hello.c的過(guò)程( 筆者故意設(shè)置了打印信息及暫停60秒),如下

Making 編譯完成后,首先進(jìn)入apps/tom目錄,發(fā)現(xiàn)已經(jīng)得到hello可執(zhí)行文件,使用file命令查看這個(gè)可執(zhí)行文件,結(jié)果如下

File-Hello 看來(lái)交叉編譯工具已經(jīng)正確指定且得到了可在目標(biāo)板上執(zhí)行的文件。再次將得到的二進(jìn)制文件燒寫(xiě)至Flash,啟動(dòng),運(yùn)行hello,得到了激動(dòng)人心的“Hello World”。

hello-world

下一篇: PLC、DCS、FCS三大控

上一篇: 為Freescale i.MX6處

推薦產(chǎn)品

更多
主站蜘蛛池模板: 久久久99国产精品免费 | 日本精品一区 | 国产精品久久久亚洲 | 久久久久久综合 | 色一情一乱一伦一区二区三区 | 中文字幕av一区二区三区 | 欧美中文在线 | 久久夜色精品国产 | 国产在线一区观看 | 日韩视频在线免费观看 | 日本精品999 | 色啪网 | 欧美精品成人一区二区三区四区 | 91精品国产综合久久精品图片 | 粉嫩国产精品一区二区在线观看 | av电影一区二区 | 亚洲综合色丁香婷婷六月图片 | 亚洲精品一区国语对白 | 久久精品中文字幕 | 91精品久久久久久久久中文字幕 | 91一区二区在线观看 | 99精品一区二区三区 | 色一级片| 国产成人精品午夜视频免费 | 亚洲精品久久久一区二区三区 | 在线观看视频91 | 91九色porny首页最多播放 | 国产精品日产欧美久久久久 | 亚洲美女视频 | 精品国产精品三级精品av网址 | 91精品国产综合久久婷婷香蕉 | 三a毛片 | 久久久久久久综合色一本 | 久久久久久久国产精品影院 | 九九九久久国产免费 | 国产无人区一区二区三区 | 国产精品五月天 | 亚洲国产欧美一区二区三区久久 | 久热免费在线 | 国产日韩欧美在线观看 | 亚洲成人一区二区 |