用戶手冊aworks m1050sdk用戶參考手冊v1.0.4_第1頁
用戶手冊aworks m1050sdk用戶參考手冊v1.0.4_第2頁
用戶手冊aworks m1050sdk用戶參考手冊v1.0.4_第3頁
用戶手冊aworks m1050sdk用戶參考手冊v1.0.4_第4頁
用戶手冊aworks m1050sdk用戶參考手冊v1.0.4_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、UM01010101V1.0.2Date:2018/11/16廣州致遠(yuǎn)電子類別內(nèi)容AWorks、SDK、i.MX RT105x、M105x-EV-Board摘 要SDK 軟件包、M105x-EV-Board 硬件及AWorks 軟件平臺介紹UserManual修訂歷史版本日期原因發(fā)布 1.0.22018/11/16創(chuàng)建文檔目錄1.2.開發(fā)平臺簡介1SDK 簡介32.1 SDK 目錄結(jié)構(gòu)32.1.1 aworks_sdk32.1.2 examples42.1.3 projects4工程模板63.1 目錄結(jié)構(gòu)63.2 工程結(jié)構(gòu)7例程的使用83.4.5.平臺硬件. . . . . . . . . .

2、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205.1 設(shè)備描述符的簡介22剪裁和參數(shù)配置6.3工程參數(shù)配置文件24硬件裁剪24軟件裁剪25參數(shù)配置256.47.平臺服務(wù)的使用277.1GPIO 服務(wù)277.1.1 通用服務(wù)277.1.2 平臺服務(wù)28LED 服務(wù)29蜂鳴器服務(wù)30中斷服務(wù)30定時器服務(wù)30PWM 服務(wù)32A

3、D 服務(wù)34I2C 服務(wù)36UART 服務(wù)30SPI 服務(wù)39實(shí)時時鐘服務(wù)41看門狗服務(wù)42WIFI 服務(wù)43LCD 服務(wù)44CPU 時鐘的修改46 其他服務(wù)451.開發(fā)平臺簡介M105x-EV-Board 開發(fā)平臺是一款基于 NXP 公司基于 ARM Cortex-M7 的高性能、低價格的全功能硬件,配套AWorks 軟件平臺豐富的例程和詳盡的資料,是工程師進(jìn)行項(xiàng)目開發(fā)的首選。該平臺也可用于教學(xué)、畢業(yè)設(shè)計及電子競賽等, 開發(fā)平臺如 圖 1 所示。圖 1: M105x-EV-Board 開發(fā)

4、平臺M105x-EV-Board 開發(fā)平臺控制器采用了 NXP 公司推出低功耗高性價比i.MXRT1050 系列,其中 CPU 工作的頻率可達(dá) 600MHz,開發(fā)平臺主要特征如下所示:高達(dá) 512KB 的片上 RAM 可配置為 TCM,和 32MB 的 SDRAM 最高頻率可達(dá) 133M; 32KB 的指令 Cache 和 32KB 的數(shù)據(jù) Cache;4 個兼容 I2C 總線標(biāo)準(zhǔn)、在 FM+ 模式下數(shù)據(jù)傳輸速率可高達(dá) 1Mbit/s 的 I2C 接口,可在 Low Power 模式下工作;8 個全雙工、標(biāo)準(zhǔn) NRZ 格式、可編程 7-bit/8-bit 數(shù)據(jù)位、高達(dá) 5.0Mbit/s 的

5、UART,可在 Low Power 模式下工作;4 個接收/FIFO 達(dá) 16 字的 SPI 接口,可在 Low Power 模式下工作;2 個 CAN 總線接口;支持 scatter/gather 的 Enhanced DMA;高達(dá) 10 個單端外部模擬輸入具有 12 位分辨率 10/11 位精度的 ADC,高達(dá) 1MS/s 的采樣速率;2 個 USB 2.0 接口;1 個 10/100Mbit/s 的以太網(wǎng)接口,支持 IEEE1588 協(xié)議;3 個同步音頻接口; 1 個 LCD 接口; 1 個 ZW6201 的 WIFI 模塊;2.SDK 簡介在 04. 軟件開發(fā)指南03.SDK 軟件開發(fā)

6、包 目錄下提供的 aworks_imx1050_sdk_-alpha(下文簡稱 SDK,表示版本號,不同版本的 SDK 使用相同) 是 i.MX RT1050 系列處理器通用的 AWorks 軟件開發(fā)包,SDK 提供了大量硬件 API 函數(shù)接口,操作硬件非常方便。除此之外 SDK 還為用戶提供了各種開發(fā)工具,例如操作系統(tǒng),通用鏈表,環(huán)形緩沖區(qū)等,用戶可以根據(jù)自己的需要自由選擇。SDK 適用于 i.MX RT1050 處理器的多種開發(fā)平臺,本文以 M105x-EV-Board 開發(fā)板作為開發(fā)平臺為例,指導(dǎo)用戶如何基于 SDK 進(jìn)行軟件開發(fā)。2.1 SDK 目錄結(jié)構(gòu)SDK 軟件由兩個目錄構(gòu)成,其中

7、頂層目錄 aworks_imx1050_sdk_-alpha(下文使用SDK 表示 SDK 的根目錄) 為 SDK 的名稱以及版本號, 整個目錄結(jié)構(gòu)如 圖 2 所示。圖 2: SDK 目錄結(jié)構(gòu)這里簡要介紹下 SDK 目錄下各文件作用。 aworks_sdk: Aworks 的標(biāo)準(zhǔn)頭文件和庫文件; examples: 配套工程的測試?yán)蹋?projects: 包含 eclipse 和 keil 的模板工程;2.1.1 aworks_sdkaworks_sdk 目錄包括了 apollo、build_config、components、include、lib 目錄和build_lib_sdk.bat

8、、SConstruct 文件,如 圖 3 所示。apollo 目錄下包含了 AWorks 平臺相關(guān)的一些頭文件,build_config 目錄下包含了與編譯庫相關(guān)的配置,components 目錄下包含了apollo 提供組件的相關(guān)文件,include 文件夾下包含了與平臺相關(guān)的一些頭文件,lib 目錄包含了 SDK 所有的庫文件,s 目錄包含了與 scons相關(guān)的配置。另外兩個文件(build_lib_sdk.bat 與 SConstruct) 是與編譯庫相關(guān)的文件。圖 3: aworks_sdk 目錄結(jié)構(gòu)2.1.2 examplesexamples 為 SDK 工程所有測試?yán)檀娣拍夸洠?/p>

9、目錄包含了 application、component、feature、peripheral、system 目錄,如 圖 4 所示。圖 4: examples 目錄 application 目錄下是aworks 的應(yīng)用例程,如人臉識別、服務(wù)器等。識別、器、web component 目錄下存放了與組件相關(guān)的例程,如 shell、文件系統(tǒng)、網(wǎng)絡(luò)等組件測試?yán)獭?feature 目錄下存放了與CPU 相關(guān)的特殊外設(shè)例程,如浮點(diǎn)運(yùn)算測試、中斷響應(yīng)速度測試等。 peripheral 目錄下存放了基礎(chǔ)外設(shè)例程,如 SPI、I2C、FlexCAN、ADC 等外設(shè)測試?yán)獭?system 目錄下存放了與AW

10、orks 系統(tǒng)相關(guān)的例程,如任務(wù)的創(chuàng)建、消息隊(duì)列、郵箱、軟件定時器等例程。2.1.3 projects針對不同 IDE 和不同開發(fā)平臺本司提供了不同的工程模版,這些模版工程存放于projects 目錄下。目前針對 M105x-EV-Board 開發(fā)平臺和EASY ARM 1052 開發(fā)平臺,分別提供 eclipse 和 keil IDE 工程模版四個,如 圖 5 所示。圖 5: 模板工程目錄結(jié)構(gòu) img_rt1050_debug 為 M105x-EV-Board 開發(fā)平臺的 SDK 模版工程,如果用戶使用了eclipse 開發(fā)環(huán)境,請參見【入門指南】AWorks M1050 SDK 快速入門文

11、檔 eclipse。 easy_arm_rt1052_debug 是 EASY ARM 1052 開發(fā)平臺的 eclipse 工程。 easy_arm_rt1052_debug_mdk 是 EASY ARM 1052 開發(fā)平臺的 keil 工程。本 文 針 對 M105x-EV-Board 開 發(fā) 平 臺, 所 以 對 easy_arm_rt1052_debug 和easy_arm_rt1052_debug_mdk 模版不做介紹。 而 img_rt1050_debug_mdk 工程的目錄結(jié)構(gòu)與 img_rt1050_debug 基本相似, 配置文件剪裁和使用方法相同, 所以下文以img_rt1

12、050_debug 工程模版為例介紹模版的目錄結(jié)構(gòu)、硬件剪裁、例程使用,其他不再贅述。3. 工程模板img_rt1050_debug 為eclipse 集成開發(fā)環(huán)境下使用“ARM GCC”工具鏈的鏡像模板工程。命名規(guī)則: img 表示鏡像工程; rt1050 表示處理器為 i.MX RT105x 系列處理器。用戶在工程模板的基礎(chǔ)上,可以快速地進(jìn)行應(yīng)用開發(fā)或功能驗(yàn)證。3.1 目錄結(jié)構(gòu)工程文件 img_rt1050_debug 中的目錄結(jié)構(gòu)如 圖 6 所示:圖 6: 工程模板目錄結(jié)構(gòu) .settings:此文件夾存放了 eclipse 工程中一些配置文件; debug_config:debug_c

13、onfig 文件夾下存放了 Debug、Release、MinSizeRel 對應(yīng)的三種調(diào)試配置。有了這些調(diào)試配置,用戶首次調(diào)試工程之前,不必手動去配置調(diào)試相關(guān)的配置,下面簡單介紹一下這幾種調(diào)試配置的不同之處,如 表 1 所示:表 1: 調(diào)試配置簡介 user_code:user_code 目錄包括main.c,用戶的應(yīng)用層代碼也可以放在該目錄下。對于應(yīng)用層來說,其地址在 main.c 中,即 aw_main()。 user_config:user_config 目錄下的主要是用戶的配置文件。 “.cproject”、“.project”: 這兩個文件為 eclipse 的工程文件; rt10

14、50_sdram.gdb:該文件是 gdb行基礎(chǔ)的配置; rt1050_sdram.ld:該文件為 rt1050_flexspi_flash.ld:該文件為,調(diào)試器在時使用該的內(nèi)容對 CPU 進(jìn),編譯“SDRAM”運(yùn)行的固件時使用;,編譯“QSPI Flash”上運(yùn)行的固件時使用;調(diào)試選項(xiàng)簡介Debug代碼量最大,運(yùn)行速度最慢,可以逐行單步調(diào)試Release代碼量較小,運(yùn)行速度最快,不可以逐行單步調(diào)試MinSizeRel代碼量最小,運(yùn)行速度較快,不可以逐行單步調(diào)試3.2 工程結(jié)構(gòu)工程結(jié)構(gòu)如 圖 7 所示,其中對用戶來說,只需要關(guān)注 user_code 和 user_config 兩個目錄下的文

15、件即可。圖 7: 工程結(jié)構(gòu)1.user_code 目錄該目錄下存放用戶代碼,模板中默認(rèn)建立了“main.c”,作為用戶應(yīng)用開發(fā)的起點(diǎn)。用戶應(yīng)當(dāng)把所有在開發(fā)過程中創(chuàng)建的源文件存放于此目錄。 main.c 用戶程序主源碼文件,當(dāng)系統(tǒng)啟動并初始化完成后,將會調(diào)用“main.c”中的“aw_main()”函數(shù),用戶的應(yīng)用程序從“aw_main()”開始執(zhí)行;2.user_config 目錄該目錄下存放用戶的工程配置文件,這些配置文件定義了目標(biāo)系統(tǒng)的硬件及各種配置參數(shù)。以aw_prj_params.h 工程參數(shù)配置頭文件,在此文件中完成目標(biāo)系統(tǒng)軟硬件剪裁、參數(shù)配置的操作。aw_prj_params.c

16、工程配置文件,此文件對各個模塊之間的調(diào)用關(guān)系和初始化順序進(jìn)行了組織,用戶不需要關(guān)注和修改此文件;awbus_lite_hwconf_usrcfg.c 存在于“awbl_hwconf_usrcfg”目錄下,硬件配置文件,此文件完成目標(biāo)系統(tǒng)硬件的定義和配置。工程模板的硬件配置默認(rèn)針對 M105x-EV-Board 開發(fā)平臺,若要對目標(biāo)系統(tǒng)的硬件就需要修改此文件。進(jìn)行更改 (例如擴(kuò)展 1 片 EEPROM)4.例程的使用在 SDK 中,我們?yōu)橛脩籼峁┝吮姸鄰暮唵蔚綇?fù)雜的例程,在例程文件中有 demo 介紹、操作步驟和實(shí)驗(yàn)現(xiàn)象,清晰明了,使用戶在拿到 SDK 后可快速上手開發(fā)應(yīng)用。例程文件在“SDKe

17、xamples”目錄下。目錄結(jié)構(gòu)見 2.1.2 。用戶使用demo 時需要將待執(zhí)行的例程拷貝到“SDKuser_code”目錄下,本文以 LED例程為例。首先將“SDKexamplesperipheralled”目錄下的“demo_led.c”文件拷貝到“SDKuser_code”目錄下,如 圖 8 所示。在 eclipse 中刷新工程,如 圖 9 所示,之后可以看到剛才拷貝的測試代碼包含到工程中,如 圖 10 所示。圖 8: LED 測試代碼拷貝完成圖 9: 刷新工程圖 10: 添加文件成功打開 demo_led.c 文件中,可看到 LED 例程函數(shù)“demo_led_entry()”,該例

18、程調(diào)用led 標(biāo)準(zhǔn) API 和延時 API,實(shí)現(xiàn)了 LED 以 1Hz 的頻率閃爍的功能,如 圖 11 所示。圖 11: 找到 demo_led_entry 函數(shù)執(zhí)行 LED 例程,只需在“aw_main()”函數(shù)中調(diào)用“demo_led_entry()”函數(shù),如 圖 12所示。圖 12: 調(diào)用 LED函數(shù)在“demo_led.c”文件最上面,我們可以看到該demo 的使用方法和實(shí)驗(yàn)現(xiàn)象,如列表4.1 。列表 4.1: LED 例程的使用方法12345678列 表4.1所 述,我 們 需 要 在 “aw_prj_params.h” 配 置 文 件 中 打 開如“AW_DEV_GPIO_LED”

19、設(shè)備宏(SDK 中默認(rèn)是開啟的) 。然后編譯工程,編譯成功后,給 M105x-EV-Board 開發(fā)板上電,連接好 Jlink 并將調(diào)試程序到開發(fā)板,使用一個串口連接到 M105x-EV-Board 開發(fā)板的串口 0(串口 0 用于控制臺使用),并在電腦查看串口 0 的端口,具體步驟如下,如 圖 13 所示。1* brief LED 例程,通過標(biāo)準(zhǔn)接口實(shí)現(xiàn)* - 操作步驟:* 1. 需要在 aw_prj_params.h 頭文件里使能 AW_DEV_GPIO_LED* 2. 具體 LED 硬件配置需查看 awbl_hwconf_gpio_led.h* - 實(shí)驗(yàn)現(xiàn)象:* 1. LED 以 1Hz

20、 的頻率閃爍。圖 13: 打開計算機(jī)管理右鍵【計算機(jī)】,點(diǎn)擊【管理】,出現(xiàn)如 圖 14 所示窗口。圖 14: 查看端口在圖 14 中,點(diǎn)擊“系統(tǒng)工具”下的“設(shè)備管理器”,再點(diǎn)擊端口,查看到端口為 COM4(這是本文電腦上的端口,具體電腦上的端口根據(jù)個人而定)。打開一個終端工具 (本文中使用 Tera Term1 ),如 圖 15 所示。1可以在網(wǎng)上Tera Term 工具,也可以使用其他終端工具,下面的配置相同即可。1圖 15: 打開終端工具如 圖 16 ,選擇會話窗口中的 Serial 選項(xiàng),點(diǎn)擊【OK】。圖 16: 選擇串口如 圖 17 所示,點(diǎn)擊【Setup】->【Serial p

21、ort setup】彈出如 圖 18 所示配置界面。選擇Port: COM4 (因文電腦上的端口為 COM4,請按照自己的電腦上設(shè)備管理器中顯示的端進(jìn)行選擇,查看端口如 圖 14 所示);Baud Rate: 115200 ;其他部分保持默認(rèn),點(diǎn)擊【OK】。1圖 17: 打開串口配置圖 18: 配置串口此時串口配置成功。如 圖 19 所示,在會話窗口點(diǎn)的【Setup】->【Terminal setup】彈出如 圖 20 所示配置界面。配置 Receive 為 LF ,點(diǎn)擊【OK】。1圖 19: 選擇 Terminal setup圖 20: 設(shè)置 Terminal此時配置完成,為了不每次打

22、開都進(jìn)行配置,需要保存當(dāng)前配置。如圖 21 所示,在會話窗口點(diǎn)的【Setup】->【Save setup】打開保存窗口,如 圖 22 所示,點(diǎn)擊【保存】。1圖 21: 選擇 Save setup圖 22: 保存配置之后,出現(xiàn)如 圖 23 所示窗口。1圖 23: 控制臺配置完成接下來在 eclipse 的調(diào)試窗口中點(diǎn)擊運(yùn)行按鈕,如 圖 24 所示窗口。1圖 24: 運(yùn)行調(diào)試代碼在終端窗口中出現(xiàn)了開發(fā)板啟動后的提示信息,如 圖 25 所示窗口。1圖 25: 開發(fā)板啟動后的提示信息在圖 25 所示窗口中先按下回車鍵 (Enter),進(jìn)入 AWorks Shell 界面,如圖 26 所示,此時表

23、明程序啟動成功。圖 26: 啟動成功參見:有關(guān) AWorks Shell 的介紹請查看AWorks Shell 組件介紹。啟動成功后,可看到開發(fā)板上綠色的 LED 燈以 1HZ 的頻率在閃爍。15.平臺硬件在進(jìn)行開發(fā)前,首先要規(guī)劃系統(tǒng)的硬件。通常,SDK 提供的工程模板已經(jīng)配置好了系統(tǒng)的硬件,可以在此基礎(chǔ)上再對系統(tǒng)的硬件進(jìn)行調(diào)整,整個平臺的硬件如下,具體參考 awbus_lite_hwconf_usrcfg.c 。AWBL_HWCONF_IMX1050_NVIC(nvic) AWBL_HWCONF_IMX1050_GPIO(GPIO) AWBL_HWCONF_GPIO_LED(LED)AWBL

24、_HWCONF_GPIO_KEY(KEY)AWBL_HWCONF_IMX1050_FLEXSPI(FlexSPI) AWBL_HWCONF_IMX1050_LPSPI1(LPSPI1) AWBL_HWCONF_IMX1050_LPSPI2(LPSPI2) AWBL_HWCONF_IMX1050_LPSPI3(LPSPI3) AWBL_HWCONF_IMX1050_LPSPI4(LPSPI4) AWBL_HWCONF_IMX1050_RTWDT(RTWDOG) AWBL_HWCONF_IMX1050_WDT1(WDOG1) AWBL_HWCONF_IMX1050_GPT1(GPT1)AWBL_H

25、WCONF_IMX1050_GPT2(GPT2) AWBL_HWCONF_IMX1050_PIT(PIT) AWBL_HWCONF_IMX1050_ADC1(ADC)AWBL_HWCONF_IMX1050_SDIO_SSP0(SDIO)AWBL_HWCONF_IMX1050_EDMA(eDMA)AWBL_HWCONF_IMX1050_L AWBL_HWCONF_IMX1050_L AWBL_HWCONF_IMX1050_L AWBL_HWCONF_IMX1050_L AWBL_HWCONF_IMX1050_L AWBL_HWCONF_IMX1050_L AWBL_HWCONF_IMX1050_

26、LAWBL_HWCONF_IMX1050_LRT1(l RT2(l RT3(l RT4(l RT5(l RT6(l RT7(lRT8(lrt1) rt2) rt3) rt4) rt5) rt6) rt7)rt8)AWBL_HWCONF_IMX1050_SAI1(SAI1) AWBL_HWCONF_IMX1050_SAI3(SAI3) AWBL_HWCONF_IMX1050_MQS(MQS)AWBL_HWCONF_IMX1050_LPI2C1(LPI2C1)AWBL_HWCONF_IMX1050_LPI2C2(LPI2C2) AWBL_HWCONF_IMX1050_OCOTP(OCOTP)AWB

27、L_HWCONF_IMX1050_CAN1(CAN1) AWBL_HWCONF_IMX1050_CAN2(CAN2) AWBL_HWCONF_IMX1050_ENET(ENET) AWBL_HWCONF_GENERIC_PHY0(PHY) AWBL_HWCONF_IMX1050_ADC2(ADC2)AWBL_HWCONF_HW480272F(480 X 272 TFT 屏) AWBL_HWCONF_HWCAP480272F(480 X 272 TFT 屏) AWBL_HWCONF_HW800480F(800 X 400 7 寸 TFT 屏)AWBL_HWCONF_EMWIN_FB(emWin

28、FB) AWBL_HWCONF_IMX1050_TS(觸摸屏)AWBL_HWCONF_BU21029MUV(i2c 電阻觸摸屏)AWBL_HWCONF_FT5X06(i2c 電容觸摸屏)AWBL_HWCONF_IMX1050_EFLEX_PWM4(eFlex PWM4) AWBL_HWCONF_IMX1050_QTIMER3_PWM(QTimer3 PWM) AWBL_HWCONF_BUZZER_PWM(PWM 蜂鳴器)AWBL_HWCONF_GPIO_I2C0(GPIO I2C0) AWBL_HWCONF_PCF85063(PCF85063)AWBL_HWCONF_SPI_FLASH0(SP

29、I_FLASH0) AWBL_HWCONF_IMX1050_SEMC(SEMC)AWBL_HWCONF_IMX1050_NANDFLASH_S34ML01G2(NAND FLASH) AWBL_HWCONF_IMX1050_NANDFLASH_S34ML02G2(NAND FLASH) AWBL_HWCONF_IMX1050_NANDFLASH_MX30LF1G08(NAND FLASH) AWBL_HWCONF_IMX1050_FLEXIO2_UART0(FlexIO2 UART0)AWBL_HWCONF_IMX1050_USBH1(USB HOST 1) AWBL_HWCONF_IMX10

30、50_USBH2(USB HOST 2)AWBL_HWCONF_FM175XX_0(Mifare 卡)AWBL_HWCONF_IMX1050_USBD(USB device) AWBL_HWCONF_GPIO_WDT(GPIO 看門狗) AWBL_HWCONF_IMX1050_ENC1(ENC)AWBL_HWCONF_IMX1050_TEMPMON(Temperature Monitor) AWBL_HWCONF_IMX1050_ACMP1(Analog Comparator 1) AWBL_HWCONF_CYW43362_WIFI_SPI(SPI WIFI)AWBL_HWCONF_SX127

31、X(LoRa sx127x)AWBL_HWCONF_IMX1050_CSI(CSI) AWBL_HWCONF_OV7725(OV7725)2 AWBL_HWCONF_GPRS_ME909S(ME909S 無線模塊) AWBL_HWCONF_GPRS_SIM800(SIM800 無線模塊) AWBL_HWCONF_GPRS_U9300C(U9300C 無線模塊) AWBL_HWCONF_HW1280720F(1280 X 720 mipi 屏) AWBL_HWCONF_PCF85263(PCF85263 RTC) AWBL_HWCONF_IMX1050_RTC(SNVS HP RTC) AWBL

32、_HWCONF_IMX1050_QTIMER_CAP(QTimer3 CAP)硬件配置文件的為一個名為 g_awbl_devhcf_list 的數(shù)組,上面這些硬件在這個數(shù)組中,此數(shù)組的每一個成員都描述了系統(tǒng)中的一個硬件設(shè)備。保存5.1 設(shè)備描述符的簡介g_awbl_devhcf_list 數(shù)組成員的類型如下面的列表 5.1 所示。此數(shù)據(jù)結(jié)構(gòu)可以描述一個硬件設(shè)備在系統(tǒng)總線拓?fù)浣Y(jié)構(gòu)中的位置以及設(shè)備的配置,系統(tǒng)已配置好,用戶在這里無需再進(jìn)行更改。列表 5.1: 設(shè)備描述符12345678設(shè)備名為設(shè)備的名字,此名字需要和設(shè)備驅(qū)動的名字一致。設(shè)備單元號用于區(qū)分系統(tǒng)中硬件相同的設(shè)備,例如,系統(tǒng)中有兩個相同

33、的 UART,它們的設(shè)備名相同,其中一個 UART 的單元號為 0,另一個則為 1,系統(tǒng)建議單元號從 0 開始連續(xù)分配。設(shè)備父總線的類型指出了設(shè)備掛接在哪種總線上,例如,PLB、I2C、SPI、USB 等總線?!霸O(shè)備父總線的類型”需要和設(shè)備驅(qū)動的總線類型一致。設(shè)備父總線的編號用于區(qū)分系統(tǒng)中多條類型相同的總線。例如,系統(tǒng)中有兩條 SPI 總線,它們的總線類型相同,其中一條 SPI 總線的編號為 0,另一條則為 1。系統(tǒng)推薦總線編號從 0 開始連續(xù)分配。設(shè)備實(shí)例內(nèi)存,系統(tǒng)不使用動態(tài)內(nèi)存分配,因此需要定義設(shè)備的時候靜態(tài)分配內(nèi)存。設(shè)備信息描述了設(shè)備的一些配置信息,例如,設(shè)備的基地址、中斷號等信息?!霸O(shè)

34、備信息”是由設(shè)備驅(qū)動定義并使用的。GPIO 的設(shè)備描述符參考如 列表 5.2 所示,具體請參考 awbl_hwconf_imx1050_gpio.h 。列表 5.2: GPIO 設(shè)備描述符123452#define AWBL_HWCONF_IMX1050_GPIOAWBL_IMX1050_GPIO_NAME,0,AWBL_BUSID_PLB,struct awbl_devhcf const char*p_name;/*< brief 設(shè)備名 */uint8_tunit;/*< brief 設(shè)備單元號 */uint8_tbus_type; /*< brief 設(shè)備所處總線的類型

35、 */uint8_tbus_index; /*< brief 設(shè)備所處總線的編號 */ struct awbl_dev*p_dev;/*< brief 指向設(shè)備實(shí)例內(nèi)存 */ const void*p_devinfo; /*< brief 指向設(shè)備信息 (常量) */;678920,&( g_imx1050_gpio_dev.awdev), &( g_imx1050_gpio_devinfo),6.剪裁和參數(shù)配置6.1 工程參數(shù)配置文件目標(biāo)系統(tǒng)的軟硬件剪裁、參數(shù)配置在 aw_prj_params.h 頭文件中完成。用戶只需剪裁掉目標(biāo)系統(tǒng)中不需要使用的軟硬件,可

36、以縮小鏡像大小以及避免內(nèi)存浪費(fèi)。另外對于 AWorks 未來的軟硬件剪裁、參數(shù)配置將由圖形配置工具完成,自動生成 aw_prj_params.h ,使用起來將更加方便。6.2 硬件裁剪硬件外設(shè)定義名規(guī)則為 AW_DEV_,如 AW_DEV_IMX1050_LRT1,詳情參考 aw_prj_params.h ,其中硬件裁剪的規(guī)則為: 注釋掉外設(shè)宏定義即可禁能對應(yīng)的外設(shè),反之,則使能; 使能某個外設(shè)后,該外設(shè)所依賴的軟件組件會被自動配置進(jìn)來,如無特殊需求,則無需進(jìn)行下面的“組件剪裁”; 中斷控制器和 GPIO 是最基礎(chǔ)的外設(shè),默認(rèn)被使能。例如,如下面的 列表 6.1 所示,LRT1、LPI2C1、

37、ENET、EDMA 被使能,其它硬件則被禁能。LRT1、LPI2C1、ENET、EDMA 的標(biāo)準(zhǔn)庫等軟件組件將會被自動配置進(jìn)來,不需要手工配置這些外設(shè)依賴的軟件組件。列表 6.1: 設(shè)備描述符123456789101112131415161718特別地,對于不同的板有不同的功能,在 SDK 中默認(rèn)將板特有的功能關(guān)閉了,如 列表 6.2 為 WIFI板特有的功能,用戶如使用 WIFI板可將其打開。2#define AW_DEV_IMX1050_LRT1/*< brief iMX1050 LRT1 (串口 1) */#define AW_DEV_IMX1050_LRT2/*< brie

38、f iMX1050 LRT2 (串口 2),*/#define AW_DEV_IMX1050_LRT3/*< brief iMX1050 LRT3 (串口 3),*/#define AW_DEV_IMX1050_LRT4/*< brief iMX1050 LRT4 (串口 4),*/#define AW_DEV_IMX1050_LRT5/*< brief iMX1050 LRT5 (串口 5),*/#define AW_DEV_IMX1050_LRT6/*< brief iMX1050 LRT6 (串口 6),*/#define AW_DEV_IMX1050_LRT7/

39、*< brief iMX1050 LRT7 (串口 7),*/#define AW_DEV_IMX1050_LRT8/*< brief iMX1050 LRT8 (串口 8),*/#define AW_DEV_IMX1050_FLEXIO2_UART0/*< brief FLEXIO2 UART0(flexio 模擬 uart)*/#define AW_DEV_IMX1050_LPI2C1/*< brief iMX1050 LPI2C1 (I2C1)*/#define AW_DEV_IMX1050_LPI2C2/*< brief iMX1050 LPI2C2 (I

40、2C2)*/#define AW_DEV_IMX1050_LPSPI1/*< brief iMX1050 LPSPI1 (SPI1) */#define AW_DEV_IMX1050_LPSPI2/*< brief iMX1050 LPSPI2 (SPI2) */#define AW_DEV_IMX1050_LPSPI3/*< brief iMX1050 LPSPI3 (SPI3) */#define AW_DEV_IMX1050_LPSPI4/*< brief iMX1050 LPSPI4 (SPI4) */ #define AW_DEV_IMX1050_ENET/*

41、< brief iMX1050 ENET (有線網(wǎng)卡) */ #define AW_DEV_IMX1050_EDMA/*< brief iMX1050 eDMA */.列表 6.2: WIFI板特有硬件外設(shè)16.3 軟件裁剪軟件組件定義代表通用庫,例如名規(guī)則為_或 AW_DRV_,其_一般_AWBL_LED 代表LED 通用庫,而 AW_DRV_對應(yīng)普通的軟件組件或驅(qū)動,在 aw_prj_param_auto_cfg.h 中根據(jù)硬件自動配置了所需要的軟件驅(qū)動和軟件組件,用戶無需要再關(guān)心軟件的裁剪了。例 如, 如 下 面 的列 表6.3所 示, 當(dāng)LRT1硬 件 外 設(shè) 被 使 能

42、時,RT 驅(qū)動將自動使_AWBL_SERIAL 這個組件和 AW_DRV_IMX1050_L能。列表 6.3: 串口驅(qū)動和串口組件自動配置12345678910111213146.4 參數(shù)配置M105x-EV-Board 的參數(shù)配置在 aw_prj_params.h 中完成,主要包括以下幾個方面,具體說明請參考配置項(xiàng)的注釋或者各個組件的參考說明。硬件剪裁組件剪裁系統(tǒng)配置AWBus-lite 配置控制臺配置串行端口配置框架配置I/O 系統(tǒng)配置文件系統(tǒng)配置ID自動配置2/* UART 外設(shè)依賴于 UART 驅(qū)動和 UART 組件 */ #if defined AW_DEV_IMX1050_L RT

43、1 | defined AW_DEV_IMX1050_L RT2 | defined AW_DEV_IMX1050_L RT3 | defined AW_DEV_IMX1050_L RT4 | defined AW_DEV_IMX1050_L RT5 | defined AW_DEV_IMX1050_L RT6 | defined AW_DEV_IMX1050_L RT7 | defined AW_DEV_IMX1050_L RT8#define AW_DRV_IMX1050_LRT #ifndef_AWBL_SERIAL#define_AWBL_SERIAL #endif#endif#def

44、ine AW_DEV_CYW43362_WIFI_SPI_0/*< CYW43362 WiFi 模塊 (需配套 SPI 外設(shè)),*/如列表 6.4 所示為控制臺的配置,AW_CFG_CONSOLE_BAUD_RATE 宏規(guī)定了控制臺使用的波特率的大小,平臺默認(rèn)的數(shù)目為 115200,如果需要使用其他波特率,可以修改此宏進(jìn)行配置。列表 6.4: 設(shè)備描述符123456789101112131415162/* addtogroup grp_aw_plfm_vdebug_usrcfg* */#define_CONSOLE/*< brief 控制臺組件 */* brief 控制臺啟動時,是

45、否顯示歡迎標(biāo)識:0-不顯示 1-顯示 */ #define AW_CFG_CONSOLE_SHOW_BANNER1/* brief 控制臺串*/#defineIDCOM0/* brief 控制臺波特率 */#define AW_CFG_CONSOLE_BAUD_RATE115200/* grp_aw_plfm_vdebug_usrcfg */7.平臺服務(wù)的使用對于每一個平臺服務(wù)都存在相應(yīng)的示例程序,其中示例程序位于“SDKexamples”, 可在模板工程中的 examples 目錄下找到,examples 目錄介紹見 2.1.2 。在例程目錄下,demo_user_code 目錄下。.c 均

46、為測試?yán)?,需要測試時將相應(yīng)的測試?yán)炭截惖?.1 GPIO 服務(wù)M105x-EV-Board 開發(fā)板使用的是 NXP 公司的 i.MX RT1050 微控制器為主控,含有 131 個 IO,分別為 GPIOX_0GPIOX_31(其中 X 為 14) 和 GPIO5_X(其中 X 為 0-2),引腳大部份已從開發(fā)板上引出。GPIO 服務(wù)分為兩種,一種為通用服務(wù),例如設(shè)置輸入輸出,引腳上拉等,另外一種為平臺服務(wù),它是專門為每個引腳定制的,例如對于GPIO1_17 的引腳復(fù)用GPIO1_17_LPI2C1_SDA、GPIO1_17_USDHC1_VSELECT、GPIO1_17_USB_OTG1

47、_PWR 等,這些都包含在平臺服務(wù)中 (具體參看 awbl_imx1050_gpio_private.h 文件)。7.1.1 通用服務(wù)每個引腳都可以作為 GPIO 使用, 其中 GPIO 的通用服務(wù)以 AW 開頭, 例如AW_GPIO_PULL_UP 表示通用上拉功能,AW_GPIO_TRIGGER_LOW 表示通用中斷低電平觸發(fā),GPIO 的通用服務(wù)包括:通用引腳功能AW_GPIO_INPUT AW_GPIO_OUTPUTAW_GPIO_OUTPUT_INIT_HIGH AW_GPIO_OUTPUT_INIT_LOW引腳模式AW_GPIO_PULL_UP AW_GPIO_PULL_DOWN

48、AW_GPIO_FLOATAW_GPIO_OPEN_DRAIN AW_GPIO_PUSH_PULL引腳觸發(fā)條件AW_GPIO_TRIGGER_OFF AW_GPIO_TRIGGER_HIGH AW_GPIO_TRIGGER_LOW AW_GPIO_TRIGGER_RISE AW_GPIO_TRIGGER_FALLAW_GPIO_TRIGGER_BOTH_EDGES2服務(wù)使用到的函數(shù)aw_gpio_pin_cfgaw_gpio_pin_request aw_gpio_pin_release aw_gpio_getaw_gpio_setaw_gpio_toggleaw_gpio_trigger_c

49、fgaw_gpio_trigger_connectaw_gpio_trigger_disconnect aw_gpio_trigger_offaw_gpio_trigger_on通用服務(wù)的使用如 列表 7.1 所示,需要注意的是進(jìn)行參數(shù)配置時,各個參數(shù)必須嚴(yán)格遵守 AWorks 平臺規(guī)定,不能隨意進(jìn)行更改,例如反轉(zhuǎn) GPIO1_11 引腳時,需要配置aw_gpio_toggle(GPIO1_11) 即可。服務(wù)函數(shù)的使用方法請參考AWorks 標(biāo)準(zhǔn) API 參考手冊V。列表 7.1: GPIO 服務(wù)123456789101112131415167.1.2 平臺服務(wù)每個引腳除了 GPIO 服務(wù)外,

50、還有特定的其他功能,AWorks 平臺對于每個引腳都做了專門的規(guī)定,由于引腳很多,這里不再一一贅述,下邊以 GPIO1_17 引腳說明。GPIO1_17 引腳功能 GPIO1_17_USB_OTG1_PWR GPIO1_17_QTIMER3_TIMER1 GPIO1_17_LRT2_RTS_B GPIO1_17_LPI2C1_SDA GPIO1_17_CCM_PMIC_READY2#include "aw_gpio.h"/* 配置引腳 GPIO1_11 為 GPIO 輸入功能,上拉電阻使能 */ aw_gpio_pin_cfg(GPIO1_11, AW_GPIO_INPUT

51、 | AW_GPIO_PULL_UP);/*引腳 GPIO1_11 的輸入值 */ val = aw_gpio_get(GPIO1_11);/* 配置引腳 GPIO1_11 為 GPIO 輸出功能 */ aw_gpio_pin_cfg(GPIO1_11, AW_GPIO_OUTPUT);/* 設(shè)置引腳 GPIO1_11 的輸出值為 0(低電平) */ aw_gpio_set(GPIO1_11, 0);/*引腳 GPIO1_11 當(dāng)前的輸出值 */ val = aw_gpio_get(GPIO1_11); GPIO1_17_GPIO GPIO1_17_USDHC1_VSELECT GPIO1_1

52、7_KPP_COL07GPIO1_17 引腳模式定義 AW_GPIO_PULL_UP AW_GPIO_PULL_DOWN AW_GPIO_FLOAT AW_GPIO_OPEN_DRAIN AW_GPIO_PUSH_PULL平臺服務(wù)模式的使用與通用模式類似, 只要改變相應(yīng)的參數(shù)即可, 具體參考awbl_imx1050_gpio_private.h 。7.2 LED 服務(wù)M105x-EV-Board 開發(fā)平臺帶有 2 個LED 燈,其中 1 個為電源指示燈,另外 1 個為普通led,如 表 2 所示:表 2: LEDLED 服務(wù)函數(shù)有四個,分別為: aw_led_set aw_led_on aw_led_off aw_led_toggle使用實(shí)例如列表 7.2 所示,需要注意的是,調(diào)用 LED 程序時,不需要再次對 IO 進(jìn)行初始化,直接調(diào)用即可,服務(wù)函數(shù)的使用方法請參考AWorks 標(biāo)準(zhǔn) API 參考手冊 V列表 7.2: LED 服務(wù)。1234562#include "aw_led.h"

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論