飞思卡尔mc9s08烧录方法_飞思卡尔MC9S08及MC9S12 单片机通过SCI口更新程序的一种方法...

bootloader,

六,单片机程序注意事项

1,程序空间分配

下载程序的空间应该从0xfff地址向下排放,具体大小需要根据实际的大小及单片机Flash的Block大小来同时决定.空间的安排,一定是Block的倍数.

应用程序的空间是从程序的最低段开始排放,除了中断向量外,不可以有任何代码地址与下载程序重叠.

在用CodeWarrior来写程序时,我们可以修改PRM文件来控制程序排放地址.下面是下载程序的PRM参考代码.

NAMES END SEGMENTS

ROM = READ_ONLY 0xfA00 TO 0xFFAF; Z_RAM = READ_WRITE 0x0070 TO 0x00FF; RAM = READ_WRITE 0x0200 TO 0x086F; ROM2 = READ_ONLY 0xFFC0 TO 0xFFCB; END

PLACEMENT

DEFAULT_RAM INTO RAM;

DEFAULT_ROM, ROM_VAR, STRINGS INTO ROM; _DATA_ZEROPAGE, MY_ZEROPAGE INTO Z_RAM; END

STACKSIZE 0x80

2,程序代码保护

为了使下载程序在任何异常情况下不会被改写,其除了放置引导程序的空间外,均要做代码保护.其在C语言种的参考代码如下.

const unsigned char NVPROT_INIT @0x0000FFBD = 0xFA;.

3,计算机应用程序如何处理单片机应用程序的中断相量表

计算机在应用程序处理该中断相量表时,应根据下载程序的映射关系,将两个字节的相量数据自动计算到对应引导地址,并变为JMP+地址(相量)的模式.下面是参考转变模式.

单片机应用程序复位相量为0x8000,其变为跳转后的代码则为0xCC8000.如本文参考代码,其对应引导地址为0xf9fc,则计算机应用程序则应通知下载程序在0Xf9fc后写0XCC8000三个字节数据,运行完成后,反编译的代码如下: F9FC: JMP 0x8000

3,其它建议

为保证应用程序的正确性,可以在下载程序里判断程序的校验码,可以用16位CRC码等.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值