不知道为什么,每次每一次上电的时候,会进入非法中断,在ADC的打开的时候(其实和SPI和定时器没什么关系)
第一次开机(上电或调试)---->进入非法中断--->把ADC模块屏蔽或下载一个其他正常的工程到FLASH--->正常--->重新下载这个“有错的”工程或调试到FLASH--->正常
MAIN函数
- void main(void)
- {
- InitSysCtrl();
- InitGpio();
- InitSciaGpio();
- DINT;
- InitPieCtrl();
- PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
- InitPieVectTable();
- EALLOW;
- PieVectTable.TINT0 = &cpu_timer0_isr;
- EDIS;
- IER |= M_INT1;
- InitSpiGpio();
- InitSpi();
- SpiaRegs.SPITXBUF=0x00;
- //spi_fifo_init();
-
复制代码- void ConfigAdc(void)
- {
- EALLOW;
- //通道0
- AdcRegs.ADCSOC0CTL.bit.CHSEL = 0;
- AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 1;
- AdcRegs.ADCSOC0CTL.bit.ACQPS = 6;
- EDIS;
- }
复制代码
此帖出自
小平头技术问答
嗯嗯,多谢回复,其实经过多次测试我发现就是只要有这个InitAdc()就会在第一次上电时出问题。
这是整个工程
是少了文件还是怎么回事?
<Linking>
"../28027_RAM_lnk.cmd", line 114: error #10099-D: program will not fit into available memory. placement with alignment/blocking fails for section ".text" size 0x17ef page 0. Available memory ranges:
PRAML0 size: 0x900 unused: 0x900 max hole: 0x900
>> Compilation failure
"../28027_RAM_lnk.cmd", line 122: error #10099-D: program will not fit into available memory. placement with alignment/blocking fails for section ".econst" size 0xa6e page 1. Available memory ranges:
DRAML0 size: 0x700 unused: 0x620 max hole: 0x620
undefined first referenced
symbol in file
--------- ----------------
_ConfigAdc ./main.obj
好好看看吧,原因我已经说了。
或者由此你会改变不认真看别人回帖的习惯吧
多谢斑竹,我看到差别了,把那个ifdef放到了前面,我已经调了快两天这个了,找到每一个可能解决的方案我都会认真去试了,但是我去汇编不大懂,没有理解您前面说的意思,我还以为是初始化flash——InitFlash()这个函数要放到那个MemCopy()的前面,所以我只把这个改了,没看到效果,现在测试AD应该是没问题了——下载程序——断电——调试程序——正常(没有像以前进入非法中断),但是我的屏幕不亮了,还要再调调看。
一周热门 更多>