打印

如何把c程序段放入FLASH固定地址处??大侠们帮忙!

[复制链接]
2196|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
火箭球迷|  楼主 | 2010-1-20 22:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
jerkoh| | 2010-1-20 22:16 | 只看该作者
2,建立AP.C 用户代码
  加入startup.a51  (可以不加)
  在keil->options->c51->interrupt vectors at address: 输入中断映射地址
  如下:
       interrupt vectors at address: 0x1000
  0x1000即AP的code区起始地址 也是中断矢量地址的映射基地址开始。
  在keil->options->BL51 Locate 设置如下
  定义 code Rang 0x1000-0x3dff
  CODE: 输入 ?C_C51STARTUP(1100H)        /*需要和bootloader中的跳转地址一致*/
                                         /*只需要定位好这个地址*/
                                         /*这样所有的中断函数都不需要再次定位*/
  编译:烧录的时候 从0x1000 开始烧 即第7块开始
  两个代码烧录完,复位就可以运行
  
3,bootloader区串口等下载 不能出现中断函数

使用特权

评论回复
板凳
jerkoh| | 2010-1-20 22:16 | 只看该作者
CODE: 输入 ?C_C51STARTUP(1100H)        /*需要和bootloader中的跳转地址一致*/

这样 函数的地址就在0x1100了 如此方法就可以

使用特权

评论回复
地板
sinadz| | 2010-1-21 19:19 | 只看该作者
楼上说的很仔细,学习了

使用特权

评论回复
5
司徒老鹰| | 2010-1-21 22:52 | 只看该作者
嗯,够详细了

使用特权

评论回复
6
无冕之王| | 2010-1-22 11:06 | 只看该作者
scatter文件查看一下关于scatter文件的描述吧!在编译选项中,我们通常选择其实段为Vectors.o(startup),但是还可以选择利用scatter文件的方式定义相关的文件到flash的固定地址。以前做过,记不大清楚了。找一本编译器的书看看就可以了,可以实现的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:姚明的铁杆球迷

150

主题

3470

帖子

3

粉丝