当前位置:首页 > 单片机 > 单片机
[导读]如何实现对PIC芯片ROM中的程序地址的精确定位。一个悬而未决的问题,历时4个月终于获解。大块人心。事情要从4个月前的一场讨论说起。详细情况见:天梯 之 从零开始玩PIC——11.关于FLASH操作的讨论问题的实

如何实现对PIC芯片ROM中的程序地址的精确定位。

一个悬而未决的问题,历时4个月终于获解。大块人心。

事情要从4个月前的一场讨论说起。详细情况见:天梯 之 从零开始玩PIC——11.关于FLASH操作的讨论

问题的实质,就是如何实现对ROM中的程序地址的精确定位。因为只有精确定位了,才能通过对FLASH的写操作来修改表格中的数据。(甚至可以修改程序!)。

当时,yewuyi 和martin 参与了讨论。并且,martin给出了一个不太理想的解决方案:在编译器命令行选项中进行设置,让编译器绝对避开某些区域。然后把这块区域开辟为表格。但是这个方案的缺点是,在烧芯片时,无法对表格内容初始化,必须通过串口下载,由单片机程序去修改。

这个问题被悬置了很久,今天,终于在网上看到一篇贴(参见:PICC中如何用指针访问const 数组? ),匠人由此受到启发。找到了问题的解决方案,总结如下:

1、在定义const数组的同时,定义const指针:

const tU08 LED_TAB[]=

{

//。。。。内容略。。。。

};

const tU08 *romPtr; //定义指向ROM 的指针

2、程序中可以对上面的指针变量赋值和实现取数操作:

tU08 i ;

romPtr = LED_TAB;

i=*romPtr++; //取指针指向的一个数,然后指针加1

3、同样的,我们也可以把romPtr 指针值传递给其他变量:

tU16 m;

romPtr = LED_TAB;

m=romPtr;

4、更神奇的是,我们可以通过这种方式,找到任意一个函数的起始PC地址:

romPtr = temp_cnt; //说明:“temp_cnt”为一个函数。

5、找到了地址,再要修改该地址所在的FLASH,自然应该没有问题了吧。呵呵。

扩展阅读:关于PIC24的DISI禁止中断指令

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

-CAS推出CAS IP Finder,旨在改进知识产权搜索 AI增强解决方案深化搜索功能,优化用户体验  俄亥俄州哥伦布2025年9月9日 /美通社/ --...

关键字: FINDER IP ST AI

柏林2025年9月9日 /美通社/ -- 总部位于迪拜的生活方式科技品牌ASTRAUX强势亮相2025年柏林国际电子消费品展览会(IFA),首次推出的三款原创产品引发广泛关注,成功将品牌推向绿色出行与智能生活领域的舆论焦...

关键字: ST COM AI GLOBAL

北京2025年9月5日 /美通社/ -- 近日,2025年中瑞商业大奖颁奖典礼在北京举行,SGS通标标准技术服务有限公司(以下称SGS通标)作为瑞士SGS在中国的分支机构荣获了传承奖的殊荣。SGS通标北京总经理...

关键字: 可持续发展 ST AI ABILITY

RighValor现已基于Synaptics® Astra™ SL1600系列SOC运行,提供隐私至上的实时边缘智能。 加利福尼亚州帕洛阿尔托2025年9月5日 /美通社/ -- 边缘分布式代理AI先驱企业Righ今日...

关键字: 智能家居 SYNAPTICS AI ST

马萨诸塞州剑桥2025年8月20日 /美通社/ -- 今天,晶泰科技(2228.HK)宣布与韩国领先的制药企业——韩国Dong-A ST(东亚公司)签署合作备忘录(MOU),...

关键字: 泰科 AI 机器人 ST

在这篇文章中,小编将为大家带来单片机的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 单片机 AVR PIC

北京2025年8月6日 /美通社/ -- 亚马逊云科技宣布,Anthropic最新一代模型Claude Opus 4.1与Claude Sonnet 4,现已在Amazon Bedrock全面上线。这批新型双模推理模型支...

关键字: 模型 PIC 亚马逊 CK

上海2025年7月25日 /美通社/ -- 昨日,在首届上海国际低空经济博览会现场,昂际智航与翊飞航空科技正式签署ES1000型号铁鸟及101工程实验样机飞控电子集成和试飞支持合同。此次采购合同签署标志着双方自2024年...

关键字: 运输机 飞控系统 EV ST
关闭