请教各位: 如何在MC9s12 中利用bootloader实现把用户代码放在指定的flash区域? 如果在flash中存放两份用户代码(版本1放在区域1&版本2区域2),如何切换? 使用CW如何实现将用户代码的版本信息作为代码的一部分放入flash中,每次升级之前读出flash的版本和 需要烧入的firmware 进行比较? freescale提供的bootloader(AN2153)下载firmware到flash中时,由于flash保护问题,使用了2级中断跳转(次中断表)。 Interrupt Source Secondary Vector Address
Reserved $FF80 $EF80 。。。。。。。。。。 但是我在CW中自动生成的代码的中断似乎是固定在0xFF80位置的。 const tIsrFunc _InterruptVectorTable[] @0xFF80 = { /* Interrupt vector table */ /* ISR name No. Address Pri Name Description */ Cpu_Interrupt, /* 0x3F 0xFF80 1 ivVReserved63 unused by PE */ Cpu_Interrupt, /* 0x3E 0xFF82 1 ivVReserved62 unused by PE */ Cpu_Interrupt, /* 0x3D 0xFF84 1 ivVReserved61 unused by PE */ Cpu_Interrupt, /* 0x3C 0xFF86 1 ivVReserved60 unused by PE */ Cpu_Interrupt, /* 0x3B 0xFF88 1 ivVpwmesdn unused by PE */ Cpu_Interrupt, /* 0x3A 0xFF8A 1 ivVvreglvi unused by PE */ Cpu_Interrupt, /* 0x39 0xFF8C 1 ivVpmffault3 unused b 。。。。 如果使用bootloader下载,是不是只需要手动将@0xFF80 改成次中断表的地址(0xEF80)? 谢谢! |