IAR中工程相關(guān)配置及c語(yǔ)言易忘知識(shí)點(diǎn)

博客主頁(yè)尤莺,歡迎訪問(wèn):blog.spursgo.com

使用K60單片機(jī)時(shí)释涛,往往使用IAR的比較多署浩。但是我之前一直使用KEIL來(lái)進(jìn)行stm32的開發(fā)循集,所以就有一種先入為主的觀念,總覺(jué)得KEIL比IAR要好一些窿撬。隨著和IAR打交道越來(lái)越多启昧,漸漸地發(fā)現(xiàn)IAR也是一款十分優(yōu)秀的軟件,給我們的編程開發(fā)帶來(lái)了很大的方便劈伴。


下面密末,我把我使用IAR時(shí),個(gè)人認(rèn)為重要的一些東西分享出來(lái)跛璧。

1.關(guān)于IAR中的文件路徑問(wèn)題

這里講的是相對(duì)路徑:為什么要使用相對(duì)路徑呢严里?舉個(gè)例子,我在IAR的工程給一個(gè)配置文件配置了絕對(duì)路徑追城,那么你會(huì)發(fā)現(xiàn)刹碾,當(dāng)你把這個(gè)工程換一個(gè)地方或者發(fā)送給其他的人使用,程序中會(huì)報(bào)錯(cuò)座柱。

其實(shí)這就絕對(duì)路徑惹的禍迷帜,如果你不改變工程的位置,那就沒(méi)有問(wèn)題色洞。但是戏锹,這樣很不方便呀,改變位置或者發(fā)送給其他人使用是很正常的事呀火诸!

這個(gè)時(shí)候相對(duì)路徑就登場(chǎng)了景用!

下面給一個(gè)使用相對(duì)路徑的例子:


icf文件

這是K60中的一個(gè)配置文件,使用了相對(duì)路徑惭蹂,可以不受工程位置的影響了伞插!

那么,就來(lái)說(shuō)說(shuō)相對(duì)路徑的具體情況吧盾碗。

$PROJ_DIR$\..\..\Lib\icf_files\512KB_Pflash.icf

首先媚污,看一看$PROJ_DIR$表示什么意思吧!根據(jù)簡(jiǎn)寫的英文大寫廷雅,我們姑且猜它是工程所在的目錄耗美,因?yàn)镻ROJ是project工程簡(jiǎn)寫,DIR是directory的簡(jiǎn)寫航缀。猜對(duì)了嗎商架?哈哈,當(dāng)然喏芥玉,這么簡(jiǎn)單的英文說(shuō)不會(huì)呀蛇摸!這就是見(jiàn)名知義的好處哦,在各種編程語(yǔ)言中灿巧,見(jiàn)名知義都是大力推崇地哦赶袄!

那么還有一個(gè)疑問(wèn)揽涮,$PROJ_DIR$雖然是工程所在目錄,那么工程所在目錄又在哪里呢?

有兩個(gè)非常重要的文件饿肺,以我的工程為例:


兩個(gè)重要文件

文件smartcarB.ewd ?和smartcarB.ewp 所在目錄就是我們所說(shuō)的工程所在目錄蒋困,這一點(diǎn)非常重要哦!在配置編譯路徑的時(shí)候會(huì)使用到敬辣,下面也會(huì)講一講的雪标。

接下來(lái)就講一講\..\..\Lib\icf_files\512KB_Pflash.icf的含義吧!

\..:表示返回上一級(jí)文件夾

\文件夾名:表示進(jìn)入名為“文件夾名”的文件夾

\文件名:選擇名為“文件名”的文件

有了這三個(gè)概念溉跃,相對(duì)路徑的解釋就非常容易了村刨。

所以$PROJ_DIR$\..\..\Lib\icf_files\512KB_Pflash.icf的意思就是返回工程所在目錄的上兩級(jí)文件夾,然后進(jìn)入該目錄下的Lib文件夾喊积,在進(jìn)入的目錄中再進(jìn)入\icf_files文件夾,這樣我們就看到了512KB_Pflash.icf文件玄妈。不信嗎乾吻?我們一起來(lái)看看吧!


配置文件

看到?jīng)]找到512KB_Pflash.icf這個(gè)文件了吧拟蜻!而且我們還會(huì)發(fā)現(xiàn)绎签,其實(shí)$PROJ_DIR$就是表示的C:\Users\Administrator\Desktop\2017.2.19\K60_Example_v2.2_2017.02.20\Project\iar?

怎么樣?相對(duì)路徑還是很簡(jiǎn)單吧酝锅!

但是相對(duì)路徑用途很廣呀诡必,不管是在windows系統(tǒng)還是linux系統(tǒng)都有大量運(yùn)用。

IAR中配置編譯路徑的時(shí)候也是使用的相對(duì)路徑喲搔扁!

看一看吧爸舒!


配置編譯路徑

相對(duì)路徑就講到這里啦!

2.關(guān)于IAR中的xxx.eww文件的講解

使用IAR進(jìn)行K60開發(fā)的時(shí)候稿蹲,我們打開工程就是通過(guò)點(diǎn)擊xxx.eww文件扭勉,但是xxx.eww文件好像一般文件路徑都比較深,我們能不能更改一下xxx.eww的位置苛聘,方便我們更快地打開的工程呢涂炎?

這就要看一看xxx.eww這個(gè)文件中的具體內(nèi)容了。我這里用用notepad++把我的smartcarB.eww文件打開:


eww文件

看到了嗎设哗?也是使用的相對(duì)路徑喲唱捣!

現(xiàn)在你自己能解釋$WS_DIR$\smartcarB.ewp的意思了嗎?

WS是workspce的簡(jiǎn)寫网梢,dir還是那個(gè)意思震缭,這樣就簡(jiǎn)單喏!就是表示打開工作空間目錄下的smartcarB.ewp文件战虏。這里的工作空間目錄就是和工程目錄一致蛀序。但是你可不要認(rèn)為工作空間目錄就是工程目錄呀欢瞪!

那就接著看下邊的吧:

如果我要在C:\Users\Administrator\Desktop\2017.2.19\K60_Example_v2.2_2017.02.20這個(gè)目錄中創(chuàng)建一個(gè)smartcarB.eww文件,并且能打開工程該怎么做呢徐裸?


改一下

最快捷方法就是把之前的smartcarB.eww文件復(fù)制到我們指定的位置遣鼓,然后再次用notepad++打開smartcarB.eww文件,對(duì)$WS_DIR$\smartcarB.ewp路徑進(jìn)行修改重贺。

剛剛學(xué)習(xí)的相對(duì)這里馬上就要用到了哦骑祟!

現(xiàn)在$WS_DIR$:工作空間目錄就變成了C:\Users\Administrator\Desktop\2017.2.19\K60_Example_v2.2_2017.02.20 ,然后我們要用相對(duì)路徑的方式找到smartcarB.ewp文件气笙。怎么做呢次企?


新的路徑

能看懂$WS_DIR$\Project\iar\smartcarB.ewp的意思嗎?其實(shí)就是循著文件夾找到指定的文件啦潜圃!

我們就可以在我們自己指定的地方打開工程了缸棵。


大功告成了

這里我就不演示了。

今天就只介紹兩個(gè)關(guān)于IAR的知識(shí)哦谭期,以后接著寫堵第。


這里還寫一點(diǎn)關(guān)于c語(yǔ)言的知識(shí)點(diǎn)。

1.關(guān)于ASCII碼表的問(wèn)題

在單片機(jī)開發(fā)中隧出,我曾經(jīng)為了節(jié)省空間踏志,就喜歡把標(biāo)志位定義成char,一般情況下還沒(méi)什么問(wèn)題胀瞪。但是又一次针余,程序出了點(diǎn)問(wèn)題,我想把標(biāo)志位通過(guò)藍(lán)牙串口發(fā)送到我的手機(jī)上凄诞。既然是標(biāo)志位嘛圆雁,當(dāng)然一般定義的就是xxx_flag = 1 或者 xxx_flag = 0啦,但是發(fā)現(xiàn)手機(jī)上沒(méi)有收到任何數(shù)據(jù)帆谍,我當(dāng)時(shí)還納悶?zāi)孛桌埃趺椿厥履卮嚷酰克{(lán)牙模塊出了問(wèn)題?

后來(lái)才想起來(lái)還有ASCII碼表這么個(gè)東西片橡,ASCII碼值0對(duì)應(yīng)的是null呀患雇,你當(dāng)然不會(huì)得到任何東西喏跃脊!

所以,在定義標(biāo)志位的時(shí)候要注意苛吱,看是定義的int 還是char型酪术,int一般沒(méi)問(wèn)題,當(dāng)時(shí)char型的時(shí)候,別忘了還有ASCII碼表這個(gè)咚咚绘雁。

2.c語(yǔ)言中關(guān)于變量類型的問(wèn)題

我們?cè)诙x數(shù)據(jù)的時(shí)候橡疼,定義long ,int或者char型庐舟,比如說(shuō) int a = 123欣除; long b = 123;要注意這些類型決定的是我們用多大的地址空間來(lái)存儲(chǔ)這些數(shù)據(jù)挪略,換句話說(shuō)就是指定多少個(gè)字節(jié)給這個(gè)變量使用历帚。他們不會(huì)決定變量地址的位數(shù),地址的長(zhǎng)度是由硬件來(lái)決定的,比如說(shuō)我們使用stm32杠娱,那么我們的地址位數(shù)就是32位挽牢,如果是51單片機(jī)的話,地址位數(shù)就是8位

3.c語(yǔ)言中指針是靈魂摊求,也是最難懂的東西禽拔。

c語(yǔ)言中指針變量這個(gè)東西實(shí)在是太重要了。舉個(gè)例子室叉,int a = 40 睹栖; int * b = &a ;

這里b就是一個(gè)指針變量太惠,b中存儲(chǔ)的就是變量a的地址磨淌。我們知道int a 中的int 指的是用int 也就是4個(gè)字節(jié)的空間來(lái)存儲(chǔ)40這個(gè)數(shù)疲憋,int * b 中的int 指的是 b中存儲(chǔ)的地址是int型的凿渊。

那么,地址是int 型的是什么意思呢缚柳?我們又用多大的空間來(lái)存儲(chǔ)a的地址值呢?

下面一個(gè)問(wèn)題一個(gè)問(wèn)題的來(lái)解答:

(1)地址是int 型表示的是如果我們對(duì)變量的值就行操作的話從首地址算起埃脏,一次操作的是4個(gè)字節(jié),如果進(jìn)行地址的強(qiáng)制轉(zhuǎn)換秋忙,比如說(shuō) (unsigned char) &a ?彩掐,那么我們一次操作地址話就只能操作一個(gè)字節(jié)了。地址的強(qiáng)制轉(zhuǎn)換可以用來(lái)取一個(gè)數(shù)的高位灰追,地位等等的堵幽。

(2)我們又用多大的空間來(lái)存儲(chǔ)a的地址值呢?定義指針變量的時(shí)候又沒(méi)有明確地指定。所以這里就是使用默認(rèn)值啦弹澎,一般來(lái)說(shuō)就是用4個(gè)字節(jié)來(lái)存儲(chǔ)地址值朴下。


以上觀點(diǎn)可能有很多錯(cuò)誤的地方,歡迎指正苦蒿。謝謝殴胧。qq:894237294


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子团滥,更是在濱河造成了極大的恐慌竿屹,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灸姊,死亡現(xiàn)場(chǎng)離奇詭異拱燃,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)厨钻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門扼雏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人夯膀,你說(shuō)我怎么就攤上這事诗充。” “怎么了诱建?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵蝴蜓,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我俺猿,道長(zhǎng)茎匠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任押袍,我火速辦了婚禮诵冒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谊惭。我一直安慰自己汽馋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布圈盔。 她就那樣靜靜地躺著豹芯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪驱敲。 梳的紋絲不亂的頭發(fā)上铁蹈,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音众眨,去河邊找鬼握牧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛娩梨,可吹牛的內(nèi)容都是我干的沿腰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼姚建,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼矫俺!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤厘托,失蹤者是張志新(化名)和其女友劉穎友雳,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铅匹,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡押赊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了包斑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片流礁。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖罗丰,靈堂內(nèi)的尸體忽然破棺而出神帅,到底是詐尸還是另有隱情,我是刑警寧澤萌抵,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布找御,位于F島的核電站,受9級(jí)特大地震影響绍填,放射性物質(zhì)發(fā)生泄漏霎桅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一讨永、第九天 我趴在偏房一處隱蔽的房頂上張望滔驶。 院中可真熱鬧,春花似錦卿闹、人聲如沸揭糕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)插佛。三九已至杠巡,卻和暖如春量窘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背氢拥。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工蚌铜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嫩海。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓冬殃,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親叁怪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子审葬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語(yǔ)言官册,發(fā)作 oo-boon-too 的音生兆。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 99,261評(píng)論 9 467
  • 1. 結(jié)構(gòu)體和共同體的區(qū)別。 定義: 結(jié)構(gòu)體struct:把不同類型的數(shù)據(jù)組合成一個(gè)整體膝宁,自定義類型鸦难。共同體uni...
    breakfy閱讀 2,124評(píng)論 0 22
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)员淫,斷路器合蔽,智...
    卡卡羅2017閱讀 134,656評(píng)論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法介返,內(nèi)部類的語(yǔ)法辈末,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法映皆,線程的語(yǔ)...
    子非魚_t_閱讀 31,631評(píng)論 18 399
  • 如果你說(shuō)你想要取得成功挤聘,那么這句話該顯得多么的蒼白無(wú)力啊。成功捅彻?似乎已是人人所追求的组去,但也只是似乎。人人都追求...
    玻璃大叔閱讀 516評(píng)論 0 1