关于CCS烧写FLASH和烧写RAM的一些理解,如何修改CMD文件。
RAM、ROM、FLASH存储器1、RAM和ROM的区别RAM和ROM的区别或者说ROM和RAM的区别是什么呢ROM和RAM都是一种存储技术只是两者原理不同**RAM为随机存储掉电不会保存数据而ROM可以在掉电的情况下依然保存原有的数据。ROM和RAM指的都是半导体存储器。**本来的含义是ROM是Read Only Memory的意思也就是说这种存储器只能读不能写。而RAM是Random Access Memory的缩写。这个词的由来是因为早期的计算机曾经使用磁鼓作为内存而磁鼓和磁带都是典型的顺序读写设备。RAM则可以随机读写。内存RAM是指随机存取存储器random access memoryRAM又称作“随机存储器”是与CPU直接交换数据的内部存储器也叫主存(内存)。它可以随时读写而且速度很快通常作为操作系统或其他正在运行中的程序的短时间临时数据存储媒介。通俗的说比如在电脑中大家都知道有内存和硬盘之说其实内存就是一种RAM技术而ROM则类似于硬盘技术两者都是存储器只是RAM的速度要远远高于ROM的速度在电脑日常操作中很多程序都将临时运行的程序命令存放在内存中但一旦关机或者停电内存里原本临时存储的程序信息将全部被清空也就是内存只能临时存储东西不能长久保存而ROM则可以存储即使掉电后也可以找到之前存储的文件这也就是硬盘了。在手机中RAM是指手机内存属于手机内部存储器属于随机存储速度高于ROM对于手机配置性能起着重要的决定性另外掉电后数据被清空比如手机运行着QQ与其它软件重启手机后软件就没有处于登录状态。而**ROM则属于外部存储比如我们经常可以购买SD卡放入手机里面则就是手机ROM手机ROM就是我们通常说的存储卡也可以简单的理解成手机硬盘吧。**用来存储手机系统文件、图片、电影等等不会随着掉电而丢失数据ROM越大存储的数据就越多。**RAM可以反复擦写内存的寿命和老化有关而和读写次数无关。**这里举例DRAMDynamic Random Access Memory是靠电容来存储电荷用电荷存在与否来表示“0”“1”这个过程可以说没有电子元件物理状态的改变只是电荷是不是在电容中而已。2、FLASH 存储器**Flash 存储器FLASH EEPROM又称闪存快闪。它是EEPROM的一种。它结合了ROM和RAM的长处。不仅具备电子可擦除可编辑EEPROM的性能还不会断电丢失数据同时可以快速读取数据。**它于EEPROM的最大区别是FLASH按扇区block操作而EEPROM按照字节操作。FLASH的电路结构较简单同样容量占芯片面积较小成本自然比EEPROM低因此适合用于做程序存储器。3、ROM, FLASH和RAM的区别对于RAM, ROM以及FLASH的区别简单地说在计算机中RAM 、ROM都是数据存储器。RAM 是随机存取存储器它的特点是易挥发性即掉电失忆。ROM 通常指固化存储器(一次写入反复读取)它的特点与RAM 相反。ROM又分一次性固化、光擦除和电擦除重写两种类型。在应用中常规上ROM是用来存储固化程序的RAM是用来存放数据的。由于FLASH ROM比普通的ROM读写速度快擦写方便一般用来存储用户程序和需要永久保存的数据。譬如说现在家用的电子式电度表它的内核是一款单片机该单片机的程序就是存放在ROM里的。电度表在工作过程中是要运算数据的要采集电压和电流并根据电压和电流计算出电度来。电压和电流时一个适时的数据用户不关心它只是用来计算电度用计算完后该次采集的数据就用完了然后再采集下一次因此这些值就没必要永久存储就把它放在RAM里边。然而计算完的电度是需要永久保存的单片机会定时或者在停电的瞬间将电度数存入到FLASH里。烧写FLASH和烧写RAMCMD文件又称链接命令文件主要作用是分配ROM和RAM空间它告诉链接程序怎样计算地址和分配空间。例如应该把程序放在哪块地址内把数据放在哪块地址内以及把程序中定义的某些变量放在哪块地址内。使用F28335进行烧写.out文件时如果使用的是28335_RAM_lnk.cmd文件那么就是把.out文件烧写到RAM用RAM可以一直烧写debug但是最后固化程序之后再烧写到flash就需要选择F28335.cmd文件这样最后烧写就是直接烧写到flash在CCS下找到该文件右击28335_RAM_Ink.cmd将Exclude from Build勾选在F28335.cmd中取消Exclude from Build勾选就可以将程序烧写到Flash中。反之烧写到RAM 中。程序烧入Flash和烧入RAM这两种烧写方式分别使用的是两个不同的 cmd 文件所以请首先请确认你的工程使用的是flash烧写所对应的 cmd 文件。如果使用的是RAM烧写所对应的cmd文件则程序只能在仿真模式下运行并没有写入flash断电之后程序会被清除。在断开仿真器重新上电之后所运行的仍然是之前flash中一直存在的程序。程序过长如何修改CMD文件我们如果.c文件的程序编写过长就可能会超出存储器的范围出现这样的报错error #10099-D: program will not fit into available memory.那么这个时候就需要修改CMD文件打开CMD文件找到.text#endif.text:RAML1,PAGE0.cinit:RAML0,PAGE0.pinit:RAML0,PAGE0.switch:RAML0,PAGE0.stack:RAMM1,PAGE1.ebss:RAML4,PAGE1.econst:RAML5,PAGE1.esysmem:RAMM1,PAGE1IQmath:RAML1,PAGE0IQmathTables:IQTABLES,PAGE0,TYPENOLOAD说明.text对应的段也就是我们编写的程序是在RAML1PAGE 0的位置我们找到RAML1发现PAGE 0 对应的RAML1的位置在0x009000长度是0x001000如果需要将此位置变大则可以将PAGE 0 下的RAML2的行代码注释把RAML1的长度改成length 0x002000。这样就能实现编译。MEMORY{PAGE0:/* BEGIN is used for the boot to SARAM bootloader mode */BEGIN:origin0x000000,length0x000002/* Boot to M0 will go here */RAMM0:origin0x000050,length0x0003B0RAML0:origin0x008000,length0x001000RAML1:origin0x009000,length0x002000// RAML2 : origin 0x00A000, length 0x001000RAML3:origin0x00B000,length0x001000ZONE7A:origin0x200000,length0x00FC00/* XINTF zone 7 - program space */CSM_RSVD:origin0x33FF80,length0x000076/* Part of FLASHA. Program with all 0x0000 when CSM is in use. */CSM_PWL:origin0x33FFF8,length0x000008/* Part of FLASHA. CSM password locations in FLASHA */ADC_CAL:origin0x380080,length0x000009RESET:origin0x3FFFC0,length0x000002IQTABLES:origin0x3FE000,length0x000b50IQTABLES2:origin0x3FEB50,length0x00008cFPUTABLES:origin0x3FEBDC,length0x0006A0BOOTROM:origin0x3FF27C,length0x000D44PAGE1:/* BOOT_RSVD is used by the boot ROM for stack. *//* This section is only reserved to keep the BOOT ROM from *//* corrupting this area during the debug process */BOOT_RSVD:origin0x000002,length0x00004E/* Part of M0, BOOT rom will use this for stack */RAMM1:origin0x000400,length0x000400/* on-chip RAM block M1 */RAML4:origin0x00C000,length0x001000RAML5:origin0x00D000,length0x001000RAML6:origin0x00E000,length0x001000RAML7:origin0x00F000,length0x001000ZONE7B:origin0x20FC00,length0x000400/* XINTF zone 7 - data space */}如何防止烧写过程中加密FLASH编译完工程之后我们先不要急着将.out文件烧写到板子上点开DEBUG文件夹下的.map文件代码如下******************************************************************************TMS320C2000 Linker PC v21.6.0******************************************************************************Linked Tue Aug2421:52:562021OUTPUT FILE NAME:SVPWM_HZB_Active.outENTRY POINT SYMBOL:_c_int00address:0000a2a0 MEMORY CONFIGURATION name origin length used unused attr fill-------------------------------------------------------------------PAGE0:BEGIN00000000000000020000000200000000RWIX RAMM000000050000003b000000000000003b0 RWIX RAML000008000000010000000004b00000fb5 RWIX RAML100009000000020000000142900000bd7 RWIX RAML30000b000000010000000000000001000RWIX ZONE7A002000000000fc00000000000000fc00 RWIX**//只要这两行代码是这个就说明修改的CMD文件没有把FLASH加密可以放心地进行烧写****CSM_RSVD0033ff80000000760000000000000076RWIX CSM_PWL0033fff8000000080000000000000008RWIX**ADC_CAL00380080000000090000000700000002RWIX IQTABLES003fe00000000b500000000000000b50 RWIX IQTABLES2003feb500000008c000000000000008c RWIX FPUTABLES003febdc000006a000000000000006a0 RWIX BOOTROM003ff27c00000d440000000000000d44 RWIX RESET003fffc0000000020000000000000002RWIX PAGE1:BOOT_RSVD000000020000004e000000000000004e RWIX RAMM100000400000004000000030000000100RWIX DEV_EMU0000088000000180000000d0000000b0 RWIX FLASH_REGS00000a80000000600000000800000058RWIX CSM00000ae0000000100000001000000000RWIX ADC_MIRROR00000b00000000100000001000000000RWIX XINTF00000b20000000200000001e00000002RWIX CPU_TIMER000000c00000000080000000800000000RWIX CPU_TIMER100000c08000000080000000800000000RWIX CPU_TIMER200000c10000000080000000800000000RWIX PIE_CTRL00000ce0000000200000001a00000006RWIX PIE_VECT00000d00000001000000010000000000RWIX DMA0000100000000200000000e000000120RWIX MCBSPA0000500000000040000000250000001b RWIX MCBSPB0000504000000040000000250000001b RWIX ECANA0000600000000040000000340000000c RWIX ECANA_LAM00006040000000400000004000000000RWIX ECANA_MOTS00006080000000400000004000000000RWIX ECANA_MOTO000060c0000000400000004000000000RWIX ECANA_MBOX00006100000001000000010000000000RWIX ECANB0000620000000040000000340000000c RWIX ECANB_LAM00006240000000400000004000000000RWIX ECANB_MOTS00006280000000400000004000000000RWIX ECANB_MOTO000062c0000000400000004000000000RWIX ECANB_MBOX00006300000001000000010000000000RWIX EPWM100006800000000220000002200000000RWIX EPWM200006840000000220000002200000000RWIX EPWM300006880000000220000002200000000RWIX EPWM4000068c0000000220000002200000000RWIX EPWM500006900000000220000002200000000RWIX EPWM600006940000000220000002200000000RWIX ECAP100006a00000000200000002000000000RWIX ECAP200006a20000000200000002000000000RWIX ECAP300006a40000000200000002000000000RWIX ECAP400006a60000000200000002000000000RWIX ECAP500006a80000000200000002000000000RWIX ECAP600006aa0000000200000002000000000RWIX EQEP100006b00000000400000004000000000RWIX EQEP200006b40000000400000004000000000RWIX GPIOCTRL00006f80000000400000002e00000012RWIX GPIODAT00006fc0000000200000002000000000RWIX GPIOINT00006fe0000000200000000a00000016RWIX SYSTEM00007010000000200000002000000000RWIX SPIA00007040000000100000001000000000RWIX SCIA00007050000000100000001000000000RWIX XINTRUPT00007070000000100000001000000000RWIX ADC00007100000000200000001e00000002RWIX SCIB00007750000000100000001000000000RWIX SCIC00007770000000100000001000000000RWIX I2CA0000790000000040000000220000001e RWIX RAML40000c0000000100000000844000007bc RWIX RAML50000d000000010000000010000000f00 RWIX RAML60000e000000010000000000000001000RWIX RAML70000f000000010000000000000001000RWIX ZONE7B0020fc00000004000000000000000400RWIX CSM_PWL0033fff8000000080000000800000000RWIX//只要这两行代码是正确的//就说明程序编译之后没有把FLASH加密可以放心地进行烧写CSM_RSVD0033ff80000000760000000000000076RWIX CSM_PWL0033fff8000000080000000000000008RWIX以上就是关于烧写FLASH和烧写RAM的一些理解。

相关新闻

关于F28335中断的一些理解

关于F28335中断的一些理解

我们知道F28335的中断采用的是3级中断机制,分别是外设级中断、PIE级中断和CPU级中断,如图1所示: 图1:F28335三级中断流程框图 我们知道F28335内部有16个中断线,2个不可屏蔽中断和14个可屏蔽中断INT1-IN14。其中12个可屏…

2026/9/28 7:06:34 阅读更多 →
原理与实践gRPC

原理与实践gRPC

原理与实践gRPC 参考文档 referrence

2026/10/11 10:12:24 阅读更多 →
SystemInformer 使用教程:把“电脑卡顿元凶“到“蓝屏根因“一次查个底朝天

SystemInformer 使用教程:把“电脑卡顿元凶“到“蓝屏根因“一次查个底朝天

SystemInformer 使用教程:把"电脑卡顿元凶"到"蓝屏根因"一次查个底朝天 【免费下载链接】systeminformer A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you…

2026/10/13 3:17:15 阅读更多 →

最新新闻

荷兰耕地遥感语义分割:从数据标注到模型训练全流程实战

荷兰耕地遥感语义分割:从数据标注到模型训练全流程实战

简介:这份荷兰耕地语义分割遥感影像数据集面向遥感图像处理、计算机视觉与农业监测方向的研究者和开发者,用于训练和验证耕地识别与像素级分割模型。资源包共2000个文件,以xml标注文件为主要类型,对应每张遥感影像的像素级类别标签…

2026/10/13 17:09:08 阅读更多 →
LiteLLM:统一LLM API抽象层实战指南

LiteLLM:统一LLM API抽象层实战指南

1. 项目概述:LiteLLM 是什么,它解决的到底是什么问题? LiteLLM 这个名字乍一听像是某个轻量级编程语言或小众框架,但其实它是一个在大模型应用开发圈子里迅速走红的开源工具库——准确地说,它是一个 统一 API 抽象层…

2026/10/13 17:09:08 阅读更多 →
GitHub日榜不是流量快照,而是可工程化的情报系统

GitHub日榜不是流量快照,而是可工程化的情报系统

1. 这不是“榜单搬运工”,而是一套可复用的 GitHub 热榜日更方法论你点开 GitHub Trending 页面,看到“Today”标签下那排滚动更新的项目——Star 数飙升、语言栏跳动、描述简短却抓人。很多人以为这只是平台自动聚合的“流量快照”,随手点开…

2026/10/13 17:09:08 阅读更多 →
MySQL 8.0.18 本地开发环境搭建与 SQLyog 连接配置实战指南

MySQL 8.0.18 本地开发环境搭建与 SQLyog 连接配置实战指南

1. 为什么本地开发环境首选 MySQL 8.0.18 搭配 SQLyog1.1 版本选型的现实考量MySQL 8.0.18 这个版本在本地开发环境里算是一个比较特殊的存在。它发布于 2019 年底,属于 8.0 系列早期比较稳定的一个版本,既包含了 8.0 大版本带来的窗口函数、CTE&#xf…

2026/10/13 17:09:08 阅读更多 →
C/C++头文件依赖可视化:用gcc-M和Graphviz生成可审计依赖图

C/C++头文件依赖可视化:用gcc-M和Graphviz生成可审计依赖图

1. 为什么C/C项目里“谁依赖谁”总在编译失败后才暴露?我第一次接手一个二十万行的嵌入式图像处理模块时,就栽在这上面。改了三行头文件里的宏定义,make直接报错:error: struct pixel_buffer has no member named stride。奇怪的是…

2026/10/13 17:09:08 阅读更多 →
从零手搓投资Agent:百亿token金融文本的智能决策系统

从零手搓投资Agent:百亿token金融文本的智能决策系统

1. 项目概述1.1 从零手搓投资Agent的动机先说背景。我们团队在开发这套系统之前,已经用传统量化策略跑了将近两年,规则引擎、因子库、事件驱动框架都搭过一遍,但遇到一个很难绕过去的坎:传统策略对“非结构化信息”的处理能力几乎…

2026/10/13 17:08:08 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →