4871|10

79

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

(高手请进)使用keil如何修改代码段的内容? [复制链接]

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

最新回复

首先第一点,你用的MCU必须支持对ROM区域进行读写;第二点,你希望的那个在线更新实际上是一个ISP的功能。我自己没用过,只是了解一点。好象前段时间,有人在C51BBS上贴出了80C51单片机实现ISP功能的代码,有兴趣的话可以到那个地方去侃侃   详情 回复 发表于 2007-6-28 10:43
点赞 关注

回复
举报

66

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
不能
 
 

回复

63

帖子

2

TA的资源

一粒金砂(中级)

板凳
 
真的没有办法吗?
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
请问有什么办法在程序运行期间修改code段的内容?  

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

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

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

我觉得LZ想要的功能是:程序的在线更新,呵呵
这样的话修改特定空间的ROM就已经够用了,但是你得在系统后台提供一个最高权限的服务程序接口,想法不错,应该能实现.
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

5
 
把程序放RAM就行了~~~~
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

6
 
lbing7, 你真厉害,看出我的目的,其实我就是想实现在线更新的功能.
但你说 "这样的话修改特定空间的ROM就已经够用了",修改ROM,也不行啊,因为程序执行是从代码段取指令的, 还是要修改代码段.
    恕我愚钝,麻烦您说清晰一点.
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 
你使用sst的片子可以做到这一点的。它有两个存储区。都可以启动。在线跟新后自起!
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

8
 
实际上你的代码是可以分为两个部分,一个是BOOTLOADER,一个是用户代码。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

9
 
我也知道,但现在关键问题是怎么放置这两部分代码和怎么选择执行其中一组代码?
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

10
 
楼主可以考虑这样的方式:
在你的Code空间中,分出3个区出来,其中包括shen_guang_wu说的俩部分,另外一个部分是软件的配置。这个部分就可以用来表示使用那个组的代码!
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

11
 
首先第一点,你用的MCU必须支持对ROM区域进行读写;第二点,你希望的那个在线更新实际上是一个ISP的功能。我自己没用过,只是了解一点。好象前段时间,有人在C51BBS上贴出了80C51单片机实现ISP功能的代码,有兴趣的话可以到那个地方去侃侃
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表