This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

有关28335flash烧写的问题

您好,我现在使用的28335在flash烧写,我在每次进中断的时候都会IO点亮一盏灯出中断的时候关闭,由于频率问题,人眼看上去长亮,大部分情况下,都是能够正常启动的,中间存在某次灯不亮,按下reset键,恢复正常,这是什么原因造成的呢

  • 你需要更多的测试信息去找到原因。

    可以在中断中设置GPIOx翻转,另外在main函数中也可以设置GPIOy翻转,通过不断的上电掉电查看程序在哪里跑飞。

    你进中断的时候用IO 改变LED亮灭,是使用什么指令?

    有没有函数复制到RAM中运行?

    Eric

  • Eric,您好,我在初始化的时候有设置一个点灯程序,跑飞的时候,跑飞的时候初始化灯亮,中断等不亮了,我中断中的点灯程序是

    GpioDataRegs.GPADAT.bit.GPIO26 = 0;// 蓝灯亮

    ...........................中断中需要执行的函数体

    GpioDataRegs.GPADAT.bit.GPIO26 = 1;// 蓝灯灭

    出中断

    每个函数体执行之前我都有一句

    #pragma CODE_SECTION(CPU_TIMER1_ISR, "ramfuncs");

    类似的话,函数复制到RAM中去了,我认为,但是我不知道是不是没有复制成功,是不是在搬运的过程中跑飞,但是我不知道如何解释,我有24块板子,烧写同样的程序,就几块出现这种问题,别且也是属于偶然跑飞的现象,难道别的板子现在同样存在跑飞的隐患?,非常困惑,谢谢啊

  • 你在main的第一条语句放memcpy函数测试一下。另外把你程序中的memcpy函数复制上来看一下

    或者,把你程序中除了iniflash之外的其他函数都不要复制到RAM,我怀疑是某个函数出现问题。

    其他板子可能也会有相同的隐患。

    Eric

  • 您好,我的memcpy是使用编译器内部,memcpy(&RamfuncsRunStart,&RamfuncsLoadStart,(Uint32)&RamfuncsLoadEnd );我从SPRA98L上作参考,发现他们有这么写

    asm(" EALLOW"); // Enable EALLOW protected register access
    memcpy((void *)0x000D00, &PieVectTableInit, 256);
    asm(" EDIS");

    我没有把这个中断向量表进行COPY会有什么影响吗,我从上面下载下来的例程,也是在版本CCS5上实现的,请问CCS3.3的编写环境是不是和这个差别不大,谢谢

  • CCS5版本上的程序CCS3.3打不开,有CCS3.3的搬移例程吗