一、附屬代碼的目錄結(jié)構(gòu)
提供的所有例程和代碼,都被集中在IAR的一個(gè)工作區(qū)(Workspace)里面,讀者把提供的ZIP文件解壓到某個(gè)目錄下(例如Workspace_IAR),就可以看到這個(gè)工作區(qū)的文件和其它一些目錄,下面是目錄截圖:
LPC800_Cookbook_IAR_Workspace.eww就是集中了本文所有例程項(xiàng)目的工作區(qū)配置文件,讀者可以雙擊這個(gè)文件啟動(dòng)IAR的IDE 開(kāi)發(fā)環(huán)境,或在IAR軟件中從菜單File/OpenWorkspace...打開(kāi)這個(gè)文件。稍等片刻,即可看到這個(gè)工作區(qū)里集成的所有項(xiàng)目。
除了這個(gè)工作區(qū)配置文件(.eww),讀者還會(huì)看到其它幾個(gè)目錄:
打開(kāi)目錄LPC824_Example_Code_Bundle_IAR_r1.0,它的目錄結(jié)構(gòu)如右圖。這里面包含了IAR的項(xiàng)目文件目錄和一些源文件目錄:
與本書(shū)各章節(jié)相關(guān)的代碼都放在圖18所示的“Projects”目錄下,每個(gè)項(xiàng)目都有一個(gè)子目錄,如右圖所示:
在IAR的IDE環(huán)境中,編譯任何一個(gè)項(xiàng)目,確切地說(shuō)是Build一個(gè)項(xiàng)目時(shí),都會(huì)在項(xiàng)目所在的目錄下按照不同的項(xiàng)目配置自動(dòng)地生成一個(gè)目標(biāo)文件的目錄。例如上面截圖中看到,對(duì)應(yīng)項(xiàng)目Cookbook_NVIC_GPIO所生成的目標(biāo)文件目錄是Cookbook,而對(duì)應(yīng)項(xiàng)目LPC82x_Lib、Peripherals_lib或Utilities_lib所生成的目標(biāo)文件目錄是flash,這個(gè)目錄的名字是由當(dāng)前項(xiàng)目的配置相關(guān)。
在IAR的IDE中,點(diǎn)擊Project Edit Configurations...后,就可以編輯所需要的配置名稱(chēng),然后再點(diǎn)擊Project Options...對(duì)該配置選項(xiàng)的各項(xiàng)配置進(jìn)行選擇,例如可以選擇包含的文件、編譯優(yōu)化的級(jí)別、鏈接不同的函數(shù)庫(kù)等。這樣可以用一套源代碼,得到不同的目標(biāo)文件或可執(zhí)行文件。有興趣的讀者可以參考IAR的相應(yīng)文檔,進(jìn)一步了解其功能和使用方法。如下圖:
二、例程項(xiàng)目下的文件
有關(guān)一個(gè)例程項(xiàng)目的文件,都集中放置在一個(gè)相同的目錄下,這個(gè)目錄的名字都是以下面的形式命名:
0 Cookbook_模塊名_功能名
|
模塊名表示該例程是屬于哪個(gè)模塊,例如NVIC、SCT、GPIO等。
功能名表示該例程所要實(shí)現(xiàn)的功能,例如Cookbook_NVIC_GPIO表示用GPIO演示NVIC的例程。另一個(gè)例子是,Cookbook_SCT_QEI表示是用SCT實(shí)現(xiàn)QEI(旋轉(zhuǎn)編碼器)的例程。
以Cookbook_NVIC_GPIO為例,在每一個(gè)項(xiàng)目的目錄下基本都包含下面一些文件:
每個(gè)項(xiàng)目的主函數(shù)源文件,都是使用與項(xiàng)目名稱(chēng)一樣的名字,讀者可以很容易地與其它源文件區(qū)分出來(lái)。項(xiàng)目中其它源文件的命名沒(méi)有硬性規(guī)定,命名基本是以標(biāo)示所執(zhí)行的功能為原則。
以下這幾個(gè)文件,基本是每個(gè)項(xiàng)目里都有的源文件:
■ IAR_cstartup_M.s:是一個(gè)匯編文件。
■ system_LPC8xx.c:當(dāng)CPU啟動(dòng)時(shí),會(huì)從上述匯編文件中的復(fù)位入口開(kāi)始執(zhí)行指令,然后轉(zhuǎn)到這個(gè).c文件中,對(duì)LPC800中與時(shí)鐘相關(guān)的振蕩器、PLL等部分執(zhí)行初始化。完成基本初始化后就轉(zhuǎn)到用戶自己的main()函數(shù),因此如果沒(méi)有特殊要求,尤其時(shí)需要嘗試本書(shū)中的例程時(shí),用戶程序可以不用再考慮主時(shí)鐘部分的初始化,此時(shí)主時(shí)鐘已經(jīng)被配置為30MHz的速率,用戶程序可以直接運(yùn)行其它模塊的初始化了。
■ IAR_Redirect.c和Serial.c:當(dāng)需要使用標(biāo)準(zhǔn)輸入輸出的函數(shù),例如printf、scanf等時(shí),項(xiàng)目里需要包含這兩個(gè)文件,它們把這些標(biāo)準(zhǔn)輸入輸出函數(shù)與UART0對(duì)接。
一般情況下,用戶不必理會(huì)與項(xiàng)目相關(guān)的四個(gè)文件(*.dep *.ewd *.ewp *.wet),如果需要了解詳細(xì)信息,請(qǐng)參考IAR的相關(guān)文檔。
三、例程項(xiàng)目索引
下面這張表是所有例程項(xiàng)目的索引,讀者在需要嘗試相應(yīng)例程時(shí),可以依據(jù)此表找到對(duì)應(yīng)的項(xiàng)目代碼。
項(xiàng)目名稱(chēng)
|
所在章節(jié)
|
簡(jiǎn)要說(shuō)明
|
Cookbook_NVIC_GPIO
|
3.1.5中斷優(yōu)先級(jí)和嵌套的演示例程
|
演示中斷嵌套的現(xiàn)象和效果
|
Cookbook_SWM_LEDs
|
6.3.3通過(guò)開(kāi)關(guān)矩陣實(shí)現(xiàn)呼吸燈的輪轉(zhuǎn)
|
通過(guò)配置SWM改變信號(hào)的輸出引腳
|
Cookbook_SWM_USARTs
|
6.3.4兩個(gè)USART模塊對(duì)接
|
通過(guò)配置SWM實(shí)現(xiàn)2個(gè)USART在芯片內(nèi)部對(duì)接
|
Cookbook_SCT_QEI
|
7.5使用IOCON的數(shù)字濾波功能實(shí)現(xiàn)按鍵去抖動(dòng)的例程
|
使用數(shù)字濾波實(shí)現(xiàn)按鍵去抖
此部分在QEI的例程中
|
Cookbook_GPIO_LEDs
|
8.3 GPIO控制器使用例程
|
演示如何直接操作GPIO
|
Cookbook_GPIO_Pmat
|
9.6.1異或的實(shí)現(xiàn)
|
使用模式匹配引擎實(shí)現(xiàn)兩個(gè)按鍵的異或操作
|
Cookbook_GPIO_Pmat-Vote
|
9.6.2三人表決器
|
使用模式匹配引擎實(shí)現(xiàn)一個(gè)三人表決器的邏輯
|
|
10.7.1 DMA執(zhí)行內(nèi)存中的數(shù)據(jù)塊拷貝
|
使用DMA搬運(yùn)內(nèi)存中的數(shù)據(jù)塊
|
Cookbook_DMA_UART
|
10.7.2 DMA執(zhí)行USART0的連續(xù)發(fā)送(硬件觸發(fā))
|
使用DMA發(fā)送數(shù)據(jù)串至UART,觸發(fā)一次將發(fā)送出所有的數(shù)據(jù)字節(jié)
|
Cookbook_DMA_UART_Burst
|
10.7.3 DMA執(zhí)行USART0的成組發(fā)送
|
使用DMA發(fā)送數(shù)據(jù)串至UART,使用乒乓鏈接的描述符連續(xù)發(fā)送多個(gè)字符串,每觸發(fā)一次將發(fā)送成組發(fā)出8個(gè)數(shù)據(jù)字節(jié),循環(huán)往復(fù)
|
Cookbook_UART_Basic
|
11.5 USART實(shí)例
|
使用中斷方式接收UART傳輸?shù)臄?shù)據(jù),再發(fā)送回去
|
Cookbook_UART_HWFlow
|
11.6帶硬件流控的UART收發(fā)例程
|
通過(guò)開(kāi)發(fā)板上的按鍵和LED模擬和顯示硬件流控
|
Cookbook_UART_Autoband
|
11.7 USART在異步模式下的自動(dòng)波特率匹配
|
演示自動(dòng)波特率匹配的設(shè)置和使用
|
Cookbook_UART_Sync
|
11.8 USART的同步模式
|
演示如何配置同步模式,并演示如何在沒(méi)有示波器的情況下,查看輸出的波形
|
Cookbook_SPI_Master
|
12.3.1 SPI的輪詢方式操作
|
使用輪詢方式讀出SPI Flash的若干ID
例程中還包含一段簡(jiǎn)單的中斷方式操作
|
Cookbook_SPI_Int_M25B32BV
|
12.3.3中斷方式訪問(wèn)SPI Flash的完整例程
|
使用中斷方式實(shí)現(xiàn)對(duì)SPI Flash的所有基本操作,包括讀寫(xiě)和擦除
|
|
13.3 I2C主機(jī)收發(fā)操作步驟——輪詢方式
|
演示主機(jī)模式下使用輪詢方式進(jìn)行I2C的收發(fā)
|
Cookbook_I2C_EEPROM_Polling
|
13.4監(jiān)測(cè)功能的使用
|
演示檢測(cè)功能的使用以及數(shù)據(jù)的解讀
|
Cookbook_I2C_EEPROM_Int
|
13.5 I2C主機(jī)收發(fā)操作步驟——中斷方式
|
使用狀態(tài)機(jī)實(shí)現(xiàn)中斷方式的I2C收發(fā)
|
Cookbook_I2C_EEPROM_Int
|
13.6 LPCOpen里如何實(shí)現(xiàn)I2C主機(jī)收發(fā)
|
使用狀態(tài)機(jī)實(shí)現(xiàn)中斷方式的I2C收發(fā),這是LPCOpen中的實(shí)現(xiàn)方法
|
Cookbook_I2C_Slave_Int
|
13.7 I2C從機(jī)收發(fā)操作步驟——中斷方式
|
使用LPC824模擬一個(gè)I2C EEPROM,演示使用中斷方式操作I2C從機(jī)
|
Cookbook_SCT_PWM2
|
14.11例程:使用SCT產(chǎn)生2路PWM輸出
|
初始化SCT,在中斷里控制輸出信號(hào)的占空比實(shí)現(xiàn)呼吸燈控制
|
Cookbook_SCT_PWM_DMA
|
14.12使用SCT+DMA自主實(shí)現(xiàn) LED呼吸燈的例程
|
采用DMA更新匹配重裝載寄存器的方式調(diào)節(jié)占空比,實(shí)現(xiàn)無(wú)中斷、無(wú)CPU干預(yù)的LED呼吸燈功能
|
Cookbook_SCT_PWM_Breath
|
14.13單獨(dú)使用SCT自主實(shí)現(xiàn) LED呼吸燈的例程
|
僅使用SCT,實(shí)現(xiàn)不需CPU和DMA干預(yù)的LED呼吸燈
|
Cookbook_SCT_QEI
|
14.16.3 SCT實(shí)現(xiàn)旋轉(zhuǎn)編碼器接口的例程
|
演示SCT讀取旋轉(zhuǎn)編碼器的數(shù)據(jù),并演示使用IOCON的數(shù)字濾波功能做毛刺濾波
|
Cookbook_WWDT
|
15.3看門(mén)狗定時(shí)器應(yīng)用例程
|
演示窗口看門(mén)狗的功能
|
Cookbook_MRT
|
16.3多速率定時(shí)器(MRT)應(yīng)用例程
|
使用兩個(gè)MRT的通道產(chǎn)生定時(shí)中斷控制LED燈的占空比,用ADC采樣電位器決定占空比
|
Cookbook_MRT_BusStall
|
16.4.1總線暫停模式產(chǎn)生PWM波例程
|
使用MRT的總線暫停模式產(chǎn)生PWM波形,演示總線暫停模式的功能和對(duì)系統(tǒng)的影響
|
Cookbook_SysTick
|
17.2.2輪詢程序?qū)崿F(xiàn)機(jī)械按鍵消抖
17.2.3中斷方式實(shí)現(xiàn)機(jī)械按鍵消抖
|
分別用輪詢和中斷方式實(shí)現(xiàn)按鍵消抖的功能
|
Cookbook_ADC
|
18.5 ADC應(yīng)用例程
|
使用按鍵觸發(fā)ADC轉(zhuǎn)換,中斷讀出ADC轉(zhuǎn)換結(jié)果,演示MODE的功效
|
Cookbook_ADC_DMA
|
18.6 ADC配合DMA的例程
|
使用DMA傳輸轉(zhuǎn)換結(jié)果
|
Cookbook_ADC_DMA_Burst
|
18.6.1 ADC配合DMA的連續(xù)轉(zhuǎn)換傳輸
|
使用DMA的成組模式傳輸轉(zhuǎn)換結(jié)果,ADC使用軟件觸發(fā)
|
END
更多恩智浦AI-IoT市場(chǎng)和產(chǎn)品信息,邀您同時(shí)關(guān)注“NXP客棧”微信公眾號(hào)
? ? ?NXP客棧
恩智浦致力于打造安全的連接和基礎(chǔ)設(shè)施解決方案,為智慧生活保駕護(hù)航。
長(zhǎng)按二維碼,關(guān)注我們
恩智浦MCU加油站
這是由恩智浦官方運(yùn)營(yíng)的公眾號(hào),著重為您推薦恩智浦MCU的產(chǎn)品信息、開(kāi)發(fā)技巧、教程文檔、培訓(xùn)課程等內(nèi)容。
長(zhǎng)按二維碼,關(guān)注我們
原文標(biāo)題:LPC800前生今世 第四章-系列總覽指南書(shū)中的例程和項(xiàng)目文件
文章出處:【微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
mcu
+關(guān)注
關(guān)注
146文章
16885瀏覽量
349918 -
恩智浦
+關(guān)注
關(guān)注
14文章
5817瀏覽量
106327
原文標(biāo)題:LPC800前生今世 第四章-系列總覽指南書(shū)中的例程和項(xiàng)目文件
文章出處:【微信號(hào):NXP_SMART_HARDWARE,微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論