打印
[51单片机]

如何把两个hex烧入51机中并同时运行?

[复制链接]
手机看帖
扫描二维码
随时随地手机跟帖
61
上大人孔乙己|  楼主 | 2014-2-7 16:08 | 只看该作者 回帖奖励 |倒序浏览
上大人孔乙己 发表于 2014-2-7 16:05
现在再来看这个帖子,不知道是不是我原来表述有问题,但是现在看来我原先的想法是实现了。跟原来的设想一样 ...

忘了说了,这个做法必须开辟两个堆栈。

使用特权

评论回复
62
上大人孔乙己|  楼主 | 2014-2-9 14:33 | 只看该作者
不知道要怎么结贴给分  老是说“分数还没分配完或者分配错误”不知道怎么解决

使用特权

评论回复
63
zxcscm| | 2014-2-10 10:34 | 只看该作者
pangencao 发表于 2014-1-14 21:07
用汇编写可以的,hex1正常的流水的灯程序,其功能程序段入口地址为addr1,
hex2只写蜂鸣器主体程序(相当于 ...

这个答案应该就是老师的 初衷

使用特权

评论回复
64
Small_Road| | 2014-2-10 13:10 | 只看该作者
估计是想你做成一边流水灯,一边蜂呜器还在响,程序可以将这二个功能做到一个HEX内的,多想想怎么安排结构就行了。

使用特权

评论回复
65
zhangyang86| | 2014-2-11 11:58 | 只看该作者
STM32是可以做到的。。。呵呵

使用特权

评论回复
66
wolension| | 2014-2-12 09:48 | 只看该作者
我认为LZ的想法即使做到了也不具备太大的实际意义,一般做产品的工程师写的51程序肯定都有初始化部分(包括重定义堆栈,时钟设置,IO初始化,定时器初始化,开关中断等)以及相应的中断程序,那么编译出来的HEX肯定也有这些部分。即使你把三个HEX烧进去了,要么你原来的HEX1或HEX2不能正常运行,要么你的调度中断不能正常运行。举个例子,如果HEX1用到了定时器1中断做流水灯的节拍,其他定时器没用,那么HEX1应该会关掉其他定时器及其中断,假如你的调度任务用了定时器0,只要一进入HEX1任务,HEX1初始化把定时器0中断关了,那么你就应该回不去调度任务了吧?如果你调度任务也用了定时器1,那么你在不改HEX1的情况下如何处理两个定时器1中断程序?
其实如果程序可以在RAM中运行那么事情就简单多了。

使用特权

评论回复
67
jackhwang| | 2014-2-14 15:28 | 只看该作者
在同一个单片机只能烧写一个hex文件。

使用特权

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

本版积分规则