熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM與51編寫(xiě)程序的區(qū)別

ARM與51編寫(xiě)程序的區(qū)別

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò) 收藏
測(cè)試環(huán)境:KEIL

本文引用地址:http://www.bjwjmy.cn/article/201611/317743.htm

(1) int變量 在51 占2個(gè)字節(jié);在ARM占4個(gè)字節(jié)

(2)結(jié)構(gòu)體對(duì)齊 在51是按照一個(gè)字節(jié)對(duì)齊; 在ARM是按結(jié)構(gòu)體默認(rèn)對(duì)齊規(guī)則對(duì)齊

(3)字節(jié)在內(nèi)存的排列順序 在51是大端 ;在ARM大多數(shù)是小端,但有的可以大小端選擇。

在大端存儲(chǔ)格式中,字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中

在小端存儲(chǔ)格式中,低地址中存放的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存放的是字?jǐn)?shù)據(jù)的高字節(jié)

(大端,小端的堆棧方向不同,大端是向上生長(zhǎng),小端是向下生長(zhǎng))所以大端初始化的SP往往是地址低端,而小端初始化的SP往往是地址高端

(4)函數(shù)體中的局部變量,在C51中存放于一個(gè)可覆蓋的(數(shù)據(jù))段中的,而ARM是存放于堆棧中的。這樣在(比如PC,比如ARM),函數(shù)重入的問(wèn)題一般不是要特別注意的問(wèn)題.只要你沒(méi)有使用static變量,或者指向static變量的指針,一般情況下,ARM中函數(shù)自然而然地就是可重入的.但C51不一樣,如果你不特別設(shè)計(jì)你的函數(shù),它就是不可重入的.

(4) ARM的指令長(zhǎng)度(或指針)一個(gè)字(32位),單片機(jī)指令長(zhǎng)度(或指針)不定(1-3字節(jié))

(5) ARM的空間統(tǒng)一編址,單片機(jī)的空間獨(dú)立編址

(6) ARM沒(méi)有bool變量,單片機(jī)可采用bit變量

ARM中可采用 typedef enum(false,true) bool;

賦初值的ROM變量定位方法:

ARM方法:
const u8 bootsoftver __at (0x8001000) =BOOT32_SOFTVER;

MC51方法:
1.新建bootver.c文件
unsigned char code version=BOOTVERSION; //BOOT 固件版本

2.在BL51 Locate -- ?CO?BOOTVER(0xFD00)

主程序和中斷調(diào)用同一函數(shù)

ARM編譯后不顯示告警;函數(shù)可重入

C51顯示告警信息WARNING 15 (MULTIPLE CALL TO SEGMENT);函數(shù)不可重入



關(guān)鍵詞: ARM51編寫(xiě)程

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉