DSP28335烧写Flash遇到的问题

在使用DSP28335进行SPWM逆变闭环测试时,程序在RAM运行正常,但烧录到Flash后无法正常运行。问题源于`DELAY_US()`函数,该函数在Flash中未正确复制到RAM。解决方案包括修改F28335.cmd文件配置,添加DSP2833x_CodeStartBranch.asm和DSP2833x_MemCopy.c文件,并在main函数中调用MemCopy()和InitFlash(),确保关键函数在RAM中执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      这两天在做一个SPWM逆变闭环测试,发现程序在RAM中运行没有问题,但是烧写到Flash中就不能正常运行了,针对这个问题,我查找了好多资料(心疼小白的我...),最终问题得以解决,现将解决思路分享出来,希望能够帮到和我有同样遭遇的同行~

      首先,在TI的官方例程中,有 DELAY_US(); 这个函数,这是定义在RAM中的,在Flash中加载程序不将其复制到RAM中运行,则有可能造成上述问题以及程序跑飞...

      在ADC初始化程序中,就有用到这个函数,因此要特别注意~

       我的解决方法如下:注意ramfuncs中的配置

  •        在F28335.cmd文件中配置如下
SECTIONS
{
 
   /* Allocate program areas: */
   .cinit              : > FLASHC      PAGE = 0
   .pinit              : > FLASHC,     PAGE = 0
   .text               : > FLASHC      PAGE = 0
   codestart           : > BEGIN       PAGE = 0
  ramfuncs            : LOAD = FLASHD,
                         RUN = RAML0,
                         LOAD_START(_RamfuncsLoadStart),
                         LO
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值