28027上电进入非法中断(ADC+SPI+TIMER)

2019-03-24 11:08发布

不知道为什么,每次每一次上电的时候,会进入非法中断,在ADC的打开的时候(其实和SPI和定时器没什么关系)
第一次开机(上电或调试)---->进入非法中断--->把ADC模块屏蔽或下载一个其他正常的工程到FLASH--->正常--->重新下载这个“有错的”工程或调试到FLASH--->正常

MAIN函数
  1. void main(void)
  2. {

  3.   InitSysCtrl();
  4.   InitGpio();
  5.   InitSciaGpio();

  6.   DINT;
  7.   InitPieCtrl();
  8.   PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
  9.   InitPieVectTable();
  10.   EALLOW;
  11.   PieVectTable.TINT0 = &cpu_timer0_isr;
  12.   EDIS;
  13.   IER |= M_INT1;
  14.   InitSpiGpio();
  15.   InitSpi();
  16.   SpiaRegs.SPITXBUF=0x00;
  17.   //spi_fifo_init();
  18.   
复制代码
  1. void ConfigAdc(void)
  2. {
  3.   EALLOW;
  4.   //通道0
  5.   AdcRegs.ADCSOC0CTL.bit.CHSEL = 0;
  6.   AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 1;
  7.   AdcRegs.ADCSOC0CTL.bit.ACQPS = 6;

  8.   EDIS;
  9. }
复制代码

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
liangzr
1楼-- · 2019-03-25 05:47
dontium 发表于 2014-7-31 11:26
或者,把你完整的工程传来帮你找原因

嗯嗯,多谢回复,其实经过多次测试我发现就是只要有这个InitAdc()就会在第一次上电时出问题。
这是整个工程


dontium
2楼-- · 2019-03-25 10:22
这个工程编译就没通过
c1.jpg


是少了文件还是怎么回事?


<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      


liangzr
3楼-- · 2019-03-25 10:40
 精彩回答 2  元偷偷看……
dontium
4楼-- · 2019-03-25 11:07
这个是没问题的:
F28027_ADC_Display.rar (356.04 KB, 下载次数: 27) 2014-7-31 17:00 上传 点击文件名下载附件


好好看看吧,原因我已经说了。

或者由此你会改变不认真看别人回帖的习惯吧
liangzr
5楼-- · 2019-03-25 12:44
dontium 发表于 2014-7-31 17:03
这个是没问题的:

多谢斑竹,我看到差别了,把那个ifdef放到了前面,我已经调了快两天这个了,找到每一个可能解决的方案我都会认真去试了,但是我去汇编不大懂,没有理解您前面说的意思,我还以为是初始化flash——InitFlash()这个函数要放到那个MemCopy()的前面,所以我只把这个改了,没看到效果,现在测试AD应该是没问题了——下载程序——断电——调试程序——正常(没有像以前进入非法中断),但是我的屏幕不亮了,还要再调调看。
liangzr
6楼-- · 2019-03-25 17:27
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章