MC9S08做bootloader升级时的配置方法
使用MC9S08DZ60芯片举例:
bootloader程序的配置:
总共分两个步骤:
- 配置FFBD和FFBF寄存器。
在*.c文件中,加入如下语句:
const byte NVPROT_INIT @0x0000FFBD = 0xFB;
const byte NVOPT_INIT @0x0000FFBF = 0x3C;
NVPROT寄存器如下:
这里配置的是:0xE800-0xFFFF保护,这里作为bootloader区域。
这个可以任意配置。
NVOPT寄存器如下:
这里是要把FNORED打开,即向量重定向打开。如果不打开这个,那么跳到主程序时,中断函数无法使用。
修改完这一步,编译后,s19文件就会多出对这两个寄存器的配置。
(左边是原s19文件,右边是重新编译后的s19文件)
有的时候,会发现编译后,FFBD这个寄存器,还是0xFF的数值,没有修改。那么原因可能如下:
在“hcs08_eeprom_api.c”文件中,会有FFBD这个寄存器的写入操作。(当初这个问题让我迷惑了好一阵,最后还是查project.map文件,才找到这个定义的。)如下:
把它屏蔽了,然后编译,就可以了。