日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來(lái)到深圳市穎特新科技有限公司!
語(yǔ)言
當(dāng)前位置:首頁(yè) >> 技術(shù)中心 >> 單片機(jī)入門 >> 如何實(shí)現(xiàn)對(duì)PIC芯片ROM中的程序地址的精確定位?

如何實(shí)現(xiàn)對(duì)PIC芯片ROM中的程序地址的精確定位?

關(guān)鍵字:PIC ROM 芯片 程序 作者:admin 來(lái)源:不詳 發(fā)布時(shí)間:2018-05-19  瀏覽:3

如何實(shí)現(xiàn)對(duì)PIC芯片ROM中的程序地址的精確定位。

一個(gè)懸而未決的問(wèn)題,歷時(shí)4個(gè)月終于獲解。大塊人心。

事情要從4個(gè)月前的一場(chǎng)討論說(shuō)起。詳細(xì)情況見:天梯 之 從零開始玩PIC——11.關(guān)于FLASH操作的討論

問(wèn)題的實(shí)質(zhì),就是如何實(shí)現(xiàn)對(duì)ROM中的程序地址的精確定位。因?yàn)橹挥芯_定位了,才能通過(guò)對(duì)FLASH的寫操作來(lái)修改表格中的數(shù)據(jù)。(甚至可以修改程序!)。

當(dāng)時(shí),yewuyi 和martin 參與了討論。并且,martin給出了一個(gè)不太理想的解決方案:在編譯器命令行選項(xiàng)中進(jìn)行設(shè)置,讓編譯器絕對(duì)避開某些區(qū)域。然后把這塊區(qū)域開辟為表格。但是這個(gè)方案的缺點(diǎn)是,在燒芯片時(shí),無(wú)法對(duì)表格內(nèi)容初始化,必須通過(guò)串口下載,由單片機(jī)程序去修改。

這個(gè)問(wèn)題被懸置了很久,今天,終于在網(wǎng)上看到一篇貼(參見:PICC中如何用指針訪問(wèn)const 數(shù)組? ),匠人由此受到啟發(fā)。找到了問(wèn)題的解決方案,總結(jié)如下:

1、在定義const數(shù)組的同時(shí),定義const指針:

const tU08 LED_TAB[]=

{

//。。。。內(nèi)容略。。。。

};

const tU08 *romPtr; //定義指向ROM 的指針

2、程序中可以對(duì)上面的指針變量賦值和實(shí)現(xiàn)取數(shù)操作:

tU08 i ;

romPtr = LED_TAB;

i=*romPtr++; //取指針指向的一個(gè)數(shù),然后指針加1

3、同樣的,我們也可以把romPtr 指針值傳遞給其他變量:

tU16 m;

romPtr = LED_TAB;

m=romPtr;

4、更神奇的是,我們可以通過(guò)這種方式,找到任意一個(gè)函數(shù)的起始PC地址:

romPtr = temp_cnt; //說(shuō)明:“temp_cnt”為一個(gè)函數(shù)。

5、找到了地址,再要修改該地址所在的FLASH,自然應(yīng)該沒(méi)有問(wèn)題了吧。呵呵。

擴(kuò)展閱讀:關(guān)于PIC24的DISI禁止中斷指令

編輯:admin  最后修改時(shí)間:2018-05-19

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

内丘县| 南漳县| 沁源县| 延长县| 灌阳县| 孝义市| 平潭县| 江津市| 德江县| 穆棱市| 武隆县| 孟村| 中阳县| 枞阳县| 平塘县| 万安县| 荆门市| 建瓯市| 苏尼特右旗| 子长县| 托里县| 宝丰县| 海安县| 八宿县| 驻马店市| 奉化市| 吉木萨尔县| 杂多县| 沅陵县| 鹤岗市| 仁化县| 英吉沙县| 泰和县| 衡东县| 恩施市| 墨竹工卡县| 庆安县| 肥东县| 霍林郭勒市| 桓仁| 洱源县|