F28335 DSP烧录代码到Flash并运行详解

59 下载量 160 浏览量 更新于2024-09-01 3 收藏 51KB PDF 举报
"F28335如何烧写代码到flash中并运行" 在了解F28335 DSP如何烧写代码到闪存并运行的过程中,我们需要掌握以下几个关键知识点: 1. **DSP复位后的起始运行地址**:当F28335 DSP复位后,它会从内存地址0x3FFFC0开始执行,这是复位向量的位置。 2. **仿真器烧写程序步骤**:通常,你需要使用命令行工具或者集成开发环境(IDE),如CCS(Code Composer Studio),按照cmd文件指定的位置将编译后的二进制代码烧写到DSP的闪存中,然后执行程序。 3. **DSP的Flash启动过程**:在硬件层面,通过设置GPIO84~87为高电平来选择Flash启动。复位后,DSP从0x3FFFC0的复位向量跳转到InitBoot函数,该函数检查GPIO状态,确认启动模式为Flash。接着,程序跳转到0x33FFF6处执行。在cmd文件中,指定初始代码开始位置,如PAGE0:BEGIN,这通常包含一个跳转指令,跳转到_c_int00,进一步调用main函数。 4. **F28335烧写代码到Flash并运行**:首先,确保使用正确的cmd文件,例如F28335.cmd,该文件定义了内存分配和代码段的位置。然后,可以参考示例项目,如flash_f28335,进行烧录操作。通常,这涉及到编译、生成二进制文件,以及使用像CCS这样的IDE的烧录工具,将代码烧写到指定的Flash地址。 5. **代码在RAM与Flash中的运行差异**:如果代码在RAM中能正常运行,但在Flash中函数DSP28x_usDelay()出现问题,可能是因为该函数依赖于特定的硬件定时器或者中断服务,而这些在Flash启动模式下可能配置或初始化不同。需要检查相关时钟设置、中断处理和优化选项。 6. **CMD文件中的代码解释**:CMD文件用于配置链接器,决定程序的内存布局。例如,`MEMORY {PAGE0:...}`定义了页0的内存区域,`SECTIONS {...}`指定了代码、数据等各部分应加载到内存的哪个位置。 7. **将函数放入RAM中运行**:若要将函数放到RAM中运行,需要在源代码中明确指定该函数的存储类,如`__ramfunc`。此外,需要在cmd文件中为RAM分配空间,并确保链接器知道该函数应放置的区域。 理解以上知识点后,开发者可以成功地将程序烧写到F28335的Flash中并实现正常运行。需要注意的是,对于特定问题如DSP28x_usDelay()的异常,可能需要查看具体的代码实现和启动配置,以确定问题的根源。