首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

()使用keil怎么修改代码段的内容

2012-02-14 
(高手请进)使用keil如何修改代码段的内容?使用keil写单片机程序时,在程序运行阶段是不允许修改code段中的

(高手请进)使用keil如何修改代码段的内容?
使用keil写单片机程序时,在程序运行阶段是不允许修改code段中的内容的,但是,我现在想实现动态加载模块的功能,需要在程序运行的时候修改code段的内容.    
          请问有什么办法在程序运行期间修改code段的内容?    
             
          就好像,我们在windows装了一个新的程序后,运行这个程序的时候,操作系统给它分配了数据段,代码段和堆栈等.那么操作系统是如何分配的呢?     分配的时候不是会修改代码段(code)的值吗?     为什么windows可以做到?     单片机也能做到吗?    
 


[解决办法]
不能
[解决办法]
请问有什么办法在程序运行期间修改code段的内容?

修改CODE的内容呢,现在的单片机很多都用FLASH ROM了以后少里用EEPROM的单片机也提供内部的读写接口,是可以改的!这个肯定没问题,有时候存放一些数据直接就用FLASH,通过KEIL的定位留出空的空间就可以

但是要实现LZ说的动态连接...

这个我觉得:
没必要,因为单片机乃至嵌入式这地块的开发,功能都是明确的.专用的动态的链接这个木意义

我觉得LZ想要的功能是:程序的在线更新,呵呵
这样的话修改特定空间的ROM就已经够用了,但是你得在系统后台提供一个最高权限的服务程序接口,想法不错,应该能实现.
[解决办法]
把程序放RAM就行了~~~~
[解决办法]
你使用sst的片子可以做到这一点的。它有两个存储区。都可以启动。在线跟新后自起!
[解决办法]
实际上你的代码是可以分为两个部分,一个是BOOTLOADER,一个是用户代码。
[解决办法]
楼主可以考虑这样的方式:
在你的Code空间中,分出3个区出来,其中包括shen_guang_wu说的俩部分,另外一个部分是软件的配置。这个部分就可以用来表示使用那个组的代码!
[解决办法]
首先第一点,你用的MCU必须支持对ROM区域进行读写;第二点,你希望的那个在线更新实际上是一个ISP的功能。我自己没用过,只是了解一点。好象前段时间,有人在C51BBS上贴出了80C51单片机实现ISP功能的代码,有兴趣的话可以到那个地方去侃侃

热点排行