3. Codewarrior 10.x: 在Codewarrior中禁掉NMI功能有点类似IAR的方法,需要手动去添加或修改相应的代码到工程中,不过在Codewarrior中我探索了两种方法,殊途同归啦,反正都是可以实现禁掉NMI脚的,就看个人喜欢去选择哪一种了,下面我分两种简单介绍一下: 第一种方法: 首先我们先找到Codewarrior中工程的链接文件(路径在本工程下Project_Settings->Linker_Files下的.ld文件),打开该.ld文件如下图,可以看到链接文件中已经为Flash配置域分配了16个字节的地址空间即m_cfmprotrom,其起始地址为0x400。继续往下看,该链接文件根据该地址空间分配了一个段即cfmconfig。
上述的cfmconfig段请记住它,我们下面只要在main.c中定义一个数组并把它指定分配到该段空间内即可实现对0x400开始的16个字节数据配置,具体配置方法如下,类似我很早之前在IAR加密那篇**中提到的方法: const unsigned int __attribute__ ((section(".cfmconfig"))) flash_config[] = //@ ".intvec" =
{
0xffffffff,
0xffffffff,
0xffffffff,
0xfffffbfe // disable the NMI pin and unsecure the chip
};
|