美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区

產品分類

當前位置: 首頁 > 工業電子產品 > 其他電子產品 > 開發板,套件,編程器 > 開發板

類型分類:
科普知識
數據分類:
開發板

Atheros SDK研究與使用

發布日期:2022-10-14 點擊率:79

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

Atheros SDK初體驗

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

SourceCode-Directory

然后進入build目錄運行如下命令

make BOARD_TYPE=db12x BUILD_TYPE=jffs2

因為是第一次使用,需要編譯工具鏈,所以耗費的時間很長,好在編譯過程中沒有出現任何問題,順利地完成了全部的編譯過程,并得到了最終的二進制文件,如下圖。

Images-Built

將得到的二進制文件燒寫至Flash,板子可以正常啟動,說明以上的操作都是正確的。

變更Flash容量

由于我的設計是16MB Flash,與db12x默認的8MB Flash不符,因此需要更改源代碼,將Flash配置為16MB。經過了一段時間的摸索,發現Flash容量定義在了以下文件中

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

將其中的的第12行變更為

#define FLASH_SIZE16

再次編譯,燒寫得到的二進制文件,發現在u-boot中已經正確地識別為16MB Flash。

分析Makefile

接下來研究如何將自己編寫的代碼編譯成為可執行文件,并在目標板中運行。在通讀了build目錄中的Makefile文件后,發現其會包含build/scripts目錄下相應的Makefile,這樣只需要變更build/scripts/db12x下的Makefile即可更改編譯進來的軟件。按照Atheros官方的注釋,也是如此

# Adding make instructions:

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

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

再來分析build/scripts/db12x/Makefile.db12x文件,發現其最開始的一段輸出了較多的環境變量,例如

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

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

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

export TOM_DIR=$(TOPDIR)/apps/tom

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

build/scripts/db12x/Makefile.db12x中定義了多個編譯模塊(暫時這樣稱呼,因為我還不知道其專有名詞),例如iptables_build,samba_build等,這些編譯模塊中的大部分又統一放置于common_mainline中,然后根據/build/scripts/db12x/config.db12x中相應的配置決定啟用哪些編譯模塊,例如本例中config.db12x設定BUILD_ATHR_HOSTAP為1,則根據條件判斷語句編譯如下模塊:

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)

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

Hello World

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

#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的過程( 筆者故意設置了打印信息及暫停60秒),如下

Making 編譯完成后,首先進入apps/tom目錄,發現已經得到hello可執行文件,使用file命令查看這個可執行文件,結果如下

File-Hello 看來交叉編譯工具已經正確指定且得到了可在目標板上執行的文件。再次將得到的二進制文件燒寫至Flash,啟動,運行hello,得到了激動人心的“Hello World”。

hello-world

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

上一篇: 為Freescale i.MX6處

推薦產品

更多
美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区


        一区在线播放视频| 日本大香伊一区二区三区| 国产在线播放一区二区三区| 亚洲无人区一区| 亚洲与欧洲av电影| 亚洲电影中文字幕在线观看| 午夜精品一区二区三区电影天堂| 性做久久久久久免费观看 | 国产精品女主播在线观看| 中文字幕高清不卡| 亚洲日本一区二区| 一卡二卡三卡日韩欧美| 午夜精品成人在线视频| 久久66热偷产精品| 成人av片在线观看| 国产在线精品一区二区中文| 日韩久久久久久久| 日本道精品一区二区三区| 欧美一区二区三区在线电影| 久久久久久亚洲综合影院红桃| 国产精品美女久久久久久久久久久 | 中文字幕一区在线观看视频| 一区二区三区在线免费视频| 麻豆精品国产91久久久久久| 成人免费毛片aaaaa**| 国产成人精品日本亚洲11| 青娱乐一区二区| 在线成人小视频| 欧美极品少妇xxxxⅹ高跟鞋| 天天综合色天天综合色h| 国产69精品一区二区亚洲孕妇| 国产欧美日韩一区二区三区| 中文一区一区三区免费| 日韩视频一区二区三区在线播放 | 欧美三片在线视频观看| 精品久久99ma| 亚洲第一电影网| 成人免费不卡视频| 日韩激情视频| 精品日韩99亚洲| 一片黄亚洲嫩模| 成人网男人的天堂| 日韩精品伦理第一区| 日韩欧美一区中文| 亚洲在线观看免费视频| 成人国产电影网| 亚洲一区二区三区涩| 精品久久人人做人人爽| 亚洲国产精品久久久久婷婷884 | 洋洋av久久久久久久一区| 国产一区激情在线| 欧美日韩高清免费| 日韩你懂的在线播放| 亚洲国产日韩在线一区模特 | 久久精彩视频| 欧美福利视频导航| 一区二区三区在线免费视频 | 色综合色综合色综合| 久久网站最新地址| 午夜在线电影亚洲一区| 97超碰人人看人人| 欧美精品777| 亚洲第一狼人社区| 国产欧美一区二区视频 | 久久精品亚洲一区二区三区浴池| 午夜伦理一区二区| 精品国产乱码久久久久软件| 日韩欧美一区二区在线视频| 日韩国产欧美在线观看| 久久99精品久久久久子伦| 久久在线免费观看| 国产又粗又猛又爽又黄91精品| 三级三级久久三级久久18| 中文字幕免费不卡| av成人动漫在线观看| 欧美美女喷水视频| 青椒成人免费视频| 亚洲精品中文综合第一页| 中文字幕中文字幕一区| 91在线码无精品| 日韩色视频在线观看| 久久国产婷婷国产香蕉| 亚洲午夜激情| 亚洲综合小说图片| 久久精精品视频| 中文字幕第一区二区| 91亚洲精华国产精华精华液| 日韩视频123| 丁香网亚洲国际| 欧美一区二区三区视频| 精品在线你懂的| 欧美亚洲国产bt| 青青草视频一区| 欧美在线观看视频一区二区三区| 亚洲成人在线网站| 午夜精品短视频| 亚洲高清免费在线| 日本欧美色综合网站免费| 亚洲激情五月婷婷| 日韩精品久久一区| 亚洲va中文字幕| 亚洲国产成人不卡| 亚洲欧美国产高清| 欧美日韩国产三区| 亚洲一区二区在线免费看| 奇米视频888战线精品播放| 一区二区三区蜜桃| 色之综合天天综合色天天棕色| 亚洲综合区在线| 亚洲欧美影院| 蜜桃av噜噜一区| 6080国产精品一区二区| 高清国产午夜精品久久久久久| 日韩久久免费av| 97se亚洲国产综合自在线观| 国产欧美一区视频| 国产日韩一区欧美| 曰韩精品一区二区| 亚洲高清视频在线观看| 伦理电影国产精品| 欧美一区二区三区的| 91丨porny丨最新| 国产精品传媒入口麻豆| 日韩精品久久久免费观看| 奇米精品一区二区三区在线观看| 欧美亚洲综合久久| 高清shemale亚洲人妖| 国产亚洲1区2区3区| 就去色蜜桃综合| 日本va欧美va瓶| 日韩午夜av一区| 97人人模人人爽人人少妇| 最新国产の精品合集bt伙计| 亚洲欧美日韩精品在线| 国产成人在线色| 国产精品美女久久久久aⅴ国产馆| 日本三级中国三级99人妇网站| 免费成人在线播放| 精品免费日韩av| 精品综合在线| 六月丁香婷婷色狠狠久久| 精品国产一二三区| 欧美精品一区二区三区四区五区 | 日韩av午夜在线观看| 91精品国产综合久久久久| 99国产视频在线| 午夜影院久久久| 欧美成人vps| 日韩动漫在线观看| 成人免费视频app| 亚洲成人精品影院| 欧美成人在线直播| 四虎一区二区| 波多野结衣91| 婷婷六月综合网| 久久美女高清视频| 中文字幕在线亚洲三区| 91丨九色丨国产丨porny| 日韩高清不卡在线| 国产女人18水真多18精品一级做 | 国产午夜三级一区二区三| 四虎永久国产精品| 成人91在线观看| 亚洲午夜国产一区99re久久| 日韩精品一区在线| 欧美一级爱爱| 成人毛片老司机大片| 亚洲国产va精品久久久不卡综合 | 日韩精品免费专区| 国产亚洲精品资源在线26u| 日本韩国欧美三级| 国产福利不卡| 国产高清无密码一区二区三区| 一区二区三区视频在线观看| 精品黑人一区二区三区久久| 色综合色综合色综合| 高清国产在线一区| 国产精品18久久久久久vr| 亚洲高清在线视频| 国产亚洲精品7777| 欧美一区二区国产| 色av成人天堂桃色av| 久久本道综合色狠狠五月| 成人国产精品免费观看动漫| 久久精品国产久精国产| 亚洲免费看黄网站| 久久精品无码一区二区三区| 欧美高清激情brazzers| 一本到不卡免费一区二区| 久久资源av| 国产精品一区二区三区不卡| 成人综合在线视频| 国内国产精品久久| 日本中文字幕一区二区视频| 亚洲综合精品自拍| 一色桃子久久精品亚洲| 久久久亚洲国产美女国产盗摄 | 国产精品久久久久久久久图文区 | 久久中文字幕电影| 欧美一区二区精品|