發(fā)布時間:2021-09-23 16:34:40來源:有考培訓網(wǎng)綜合
青島嵌入式培訓機構(gòu)推薦哪家?在嵌入式系統(tǒng)的編程中,常常要求在特定的內(nèi)存單元讀寫內(nèi)容,匯編有對應的MOV指令,而除C/C++以外的其它編程語言基本沒有直接訪問地址的能力。
青島嵌入式培訓機構(gòu)推薦哪家?
達內(nèi)教育隸屬于加拿大達內(nèi)IT培訓集團,于2002年成立 ,是達內(nèi)IT培訓集團直屬學院。學院成立旨在建立軟件高級人才培養(yǎng)的通道,促進我國信息產(chǎn)業(yè)迅速發(fā)展。依托達內(nèi)集團國內(nèi)持平的課程體系(TTS6.0),雄厚的師資力量,廣闊的就業(yè)平臺,迄今為止已與國內(nèi)上萬家IT企業(yè)進行人才輸送合作,其中緊密合作企業(yè)4000余家、深入合作企業(yè)200余家、訂單輸送聯(lián)盟企業(yè)107家。
在嵌入式系統(tǒng)的實際調(diào)試中,多借助C語言指針所具有的對地址單元內(nèi)容的讀寫能力。以指針直接操作內(nèi)存多發(fā)生在如下幾種情況:
(1) 某I/O芯片被定位在CPU的存儲空間而非I/O空間,而且寄存器對應于某特定地址;
(2) 兩個CPU之間以雙端口RAM通信,CPU需要在雙端口RAM的特定單元(稱為mail box)書寫內(nèi)容以在對方CPU產(chǎn)生中斷;
(3) 讀取在ROM或FLASH的特定單元所燒錄的漢字和英文字模。
比如:
unsigned char *p = (unsigned char *)0xF000FF00;
*p="11";
以上程序的意義為在地址0xF0000+0xFF00(80186使用16位段地址和16位偏移地址)寫入11。
在使用地址指針時,要注意指針自增自減操作的結(jié)果取決于指針指向的數(shù)據(jù)類別。上例中p++后的結(jié)果是p= 0xF000FF01,若p指向int,即:
int *p = (int *)0xF000FF00;
p++(或++p)的結(jié)果等同于:p = p+sizeof(int),而p-(或-p)的結(jié)果是p = p-sizeof(int)。
記住:CPU以字節(jié)為單位編址,而C語言指針以指向的數(shù)據(jù)類型長度作自增和自減。理解這一點對于以指針直接操作內(nèi)存是相當重要的。
更多培訓課程: 青島嵌入式 更多學校信息: 青島達內(nèi)IT教育培訓 咨詢電話: