IAR 再論IAR ARM 4 42A工程配置

2022-09-11 11:09:20 字數 2148 閱讀 6365

新建乙個iar工程,並將st32韌體庫移植到了該工程中,此時如果直接compile,會出現找不到標頭檔案的情況。這在情理之中,因為,我們沒設定原始檔的標頭檔案的尋找路徑。此外,我們也沒指定晶元的型別。這些工作就是配置iar的工程,這與iar的版本密切相關(不同版本的配置介面都不一樣,最經典的是iar4.42a)。

預備知識

將**下到微控制器中有兩種方法:

2.用除錯模式,將**下到微控制器的flash或ram中,經過配置iar工程(一次就行),可以達到**更改後,只需重新進入除錯,即:點選iar中的debug按鈕

推薦使用第二種。

配置工程

下面就以iar4.42a為例,介紹一下配置工程的必須步驟:

1、板子控制晶元使用的是stm32f103vbt6,所以晶元型號選擇stm32f10x系列,多一嘴,最新的m0晶元,要用iar 6.4版本。

2、除錯時最好將編譯器選擇不優化,否則有些運算(如位運算)會被優化掉,單步除錯時可能會指示篡行。 

3、單步除錯時,若不勾選,跟蹤不是c**,而是彙編**

4、原始檔中包含標頭檔案編譯器的尋找路徑

為了便於拷貝:

$proj_dir$\..\

$proj_dir$\..\..\library\inc

解釋:proj_dir代表工程檔案(字尾blink.ewp檔案)

$proj_dir$\..\ 表示blink.ewp檔案所在目錄的上層目錄,即:尋找stm32f10x_conf.h和stm32f10x_it.h這兩個檔案。

$proj_dir$\..\..\library\inc 表示blink.ewp檔案所在目錄的上層目錄的上層目錄下的library目錄下的inc目錄下,即:尋找韌體庫的標頭檔案,如stm32f10x_gpio.h、stm32f10x_nvic.h、stm32f10x_rcc.h等。

5、採用除錯模式,還是生成.sim檔案 

6、除錯模式不要勾選,生成.sim檔案模式勾選。 

7、將**下到flash中

為了便於拷貝:

為了便於拷貝:

-oraw-binary=.bin

-o******-code=.sim

-ointel-extended=.hex

如果沒有default,按edit

如果有default,按edit看一下;如果沒有default,按new,新建乙個

一定要選擇all

9、選擇除錯用具j-link 

至此,點選compile和make都沒問題了。

備註

再論雙分派

暴力雙分派速度快,可是當類增多時,代價依然很大。map雙分派在速度優化上有dynamic cast和static cast兩種選擇,loki把這個選擇做成了policy。矩陣雙分派速度上有天然的優勢,但是你要修改你的類。於是loki也把這個做成了policy供你選擇。矩陣雙分派的思想是,在你的cla...

再論向上轉型

向上轉型的好處,已經在這篇文章 這是乙個鏈結 的 中演示了,但是沒有說不好處。現在就說說不好處,以鏈結中的 為背景,animal a1 new lion animal a2 new mokeny new出來的lion和mokey物件向上轉型為animal物件,可以使用統一的eat 讓jvm去分辨到底...

原創 再論epoll

學習時間的過程終會有反覆,其中也包括一些錯誤,上午對於前一篇關於epoll的文章進行了增改,下午就覺得有些不妥,重新編輯感覺不太容易剝樓錯誤,現在有些新的變化在這裡重新論述。上午說的在epoll裡面進行耗時任務的時候做乙個任務排程器 比如當伺服器連線外部資源 這說明我只了解了epoll的一部份,沒有...