打印

51下用bootloader

[复制链接]
5416|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
水淼|  楼主 | 2008-1-29 17:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
打算在51系统上用bootloader。
采用51单片机,4k的程序空间,运行bootloader。片外放置一个串行的flash,如45db041存放程序代码,bootloader运行时将flash中的代码拷贝到片外64k的ram中(从4k开始存放,EA接高电平,执行完片内程序,执行片外程序)。
bootloader执行完后将程序指针指到4K位置。
问题:
1 系统程序中用到的变量(xdata),在ram中会分配到低4k么,编译器怎么处理。
2 中断初始地址有原来的0x0000偏移到了4k区,可否在编译系统程序时设置,还是在片内程序bootloader中加入跳转

请大家讨论一下可行性,给点建议

相关帖子

沙发
lelee007| | 2008-1-29 18:48 | 只看该作者

沙发~~~~~~~~

1 系统程序中用到的变量(xdata),在ram中会分配到低4k么,编译器怎么处理。
---------------------
就C51来说,肯定会访问ram的低4K
2 中断初始地址有原来的0x0000偏移到了4k区,可否在编译系统程序时设置,还是在片内程序bootloader中加入跳转
---------------------
应该不行吧,51的中断入口由硬件定死的,而且又没有MMU或者别的来做地址映射,应该只能加跳转

使用特权

评论回复
板凳
xwj| | 2008-1-29 18:54 | 只看该作者

中断入口可以想办法,问题是这样做有必要吗?有什么意义

使用特权

评论回复
地板
lelee007| | 2008-1-29 18:56 | 只看该作者

利用这个可以做个仿真器吧

在线仿真

使用特权

评论回复
5
xwj| | 2008-1-29 19:14 | 只看该作者

没意义,仿真器不是这么做的

使用特权

评论回复
6
rodger_br| | 2008-1-29 19:28 | 只看该作者

内存映像编译器(LINKER)可以指定。

中断向量当然需要使用跳转引导至你的外部存储器某段地址
不像ARM,可以remap

使用特权

评论回复
7
lelee007| | 2008-1-30 08:51 | 只看该作者

嘿嘿,老X

我的意思了,是说仿真器可以这么做
而不是说仿真器就是这么做的哈
我们公司的4位MCU的仿真器就是MCU+SRAM的结构
不过MCU母体是在FPGA上跑的,结构和最后的CHIP稍有不同

使用特权

评论回复
8
水淼|  楼主 | 2008-1-30 09:36 | 只看该作者

程序在申请变量时,会不会与自己的程序空间冲突

程序代码和存放变量的存储区同时在片外存储区,那么程序运行时申请的变量,会不会和自己的程序空间冲突。

使用特权

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

本版积分规则

40

主题

66

帖子

0

粉丝