音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

uU/OS的一個數(shù)據(jù)類型問題(移植uC/OS)

作者:zmycool 欄目:ARM技術(shù)
uU/OS的一個數(shù)據(jù)類型問題(移植uC/OS)

在將uC/ OS - II 移植到ARM 處理器上時,首先進(jìn)行基本配置和數(shù)據(jù)類型定義.
重新定義數(shù)據(jù)類型是為了增加代碼的可移植性,因為不同的編譯器所提供的同一數(shù)據(jù)類型的數(shù)據(jù)長度并不相同,例如int型,在有的編譯器中是16 位,而在另外一些編譯器中則是32 位. 所以,為了便于移植,需要重新定義數(shù)據(jù)類型,如INT32U 代表無符號32 位整型. typedef unsigned int INT8U ,就是定義一個8 位的無符號整型數(shù)據(jù)類型.

==========================================
我的疑問是,
1。 從上面的意思來看,數(shù)據(jù)類型是有編譯器決定的,不是由芯片決定的!
2。如果是由編譯器決定的,那每個編譯器具體是用什么樣的數(shù)據(jù)類型,如何查看得知呢?比如KeilC, ADS 等
3。 假如現(xiàn)在typedef unsigned int INT8U ,那就是說將在某個編譯器里unsiged int 是8位的。如果將這個代碼放在其他編譯器里用,就要注意unsigned int到底是不是8位的了。對嗎?
4。 typedef unsigned int INT8U 這樣做純粹是為了方便直接而設(shè)定的一個宏,如果不宏定義也是可以的。

以上理解對不對!懇請你的回復(fù)!謝謝

2樓: >>參與討論
guet
說兩句
C語言沒有硬性規(guī)定數(shù)據(jù)類型在內(nèi)存中占的字節(jié)數(shù),只是要求
LONG >= int >= SHORT ,具體是由編譯器跟據(jù)處理器的字長決定的,通常就是LONG 為四字節(jié) SHORT 為兩字節(jié)而int可以是兩字節(jié)或者四節(jié)字,一般字長為四字節(jié)(也就是32位)的處理器,編譯器將int定義為四字節(jié),而處理器字長不是32位的,像16位和8位機(jī)通常將int定義為兩字節(jié)。CHAR類型的就不用說了。
拿int類型的數(shù)據(jù)來說
假如你這么定義一個變量 int a; 。本來你期望 a 是一個四字節(jié)長的整型,但是換了編譯器和處理器后就有可能變成兩字節(jié)長的了。為了增加可移植性,通常用typedef定義來代替不可移植的數(shù)據(jù)類型。通常你可以這么定義a的類型
INT32 a,而INT32則根據(jù)編譯器用typedef定義為已有的四字節(jié)長的數(shù)據(jù)類型。
以上是個人的理解,沒有考證過,哈哈

3樓: >>參與討論
zmycool
多謝你的回復(fù)!
你的意思是
數(shù)據(jù)類型在內(nèi)存中占的字節(jié)數(shù)是有編譯器決定的,不是由芯片決定的!

4樓: >>參與討論
computer00
當(dāng)然是由編譯器來決定了。
當(dāng)然也要在符合常規(guī)的前提下。

* - 本貼最后修改時間:2006-11-7 10:59:29 修改者:computer00

5樓: >>參與討論
zmycool
謝謝!
謝謝!樓上的兄弟好象寫過ARM的一個OS。我記得在哪兒見到過你的帖子。記不清楚了!

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
LWIP在UCOS下的移植問題?
請教:使用仿真器連接ZLG LPC213X JTGA的問題
sst39vf160FLASH的寫問題?
LPC2132 watchdog 都不能復(fù)位,是跑到哪里去了?
整天都是if,for,太累了
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號