目标读者如果你符合以下条件那这篇文章很适合你在逆向TI的芯片重选了flash ip想继续沿用CCS来作为自研芯片开发IDE想实现在CCS中操作自研芯片flash先说结论可以实现。CCS中flash下位机的演变史目前已知CCS中的flash下位机程序有两代下面分别说一下每一代的特点。第一代.out文件.out文件封装了flash所有操作。即使用户只做擦除操作也会把整个下位机程序都下载到ram中这是第一代和第二代的本质区别。擦除功能即使用户勾选了全部扇区sector擦除CCS和下位机程序也只会遍历擦除每个扇区而不会调用全擦函数flash ip需要支持一次全部擦除。所以相对于支持全擦flash ip的芯片ti的芯片擦除速度会慢很多。烧录功能上下位机传递数据的缓冲区大小是0x800个uint16超过这个大小的烧录数据会被切割成多次上下位机交互。第二代.nfl文件技术原理第一代CCS使用GDB将下位机程序下载到ram中后续CCS和下位机的交互也依赖于GDB协议至于GDB的底层硬件支持则是JTAG不在本文的讨论范围内。第一代中CCS通过GDB设置下位机程序中的操作序号全局变量告诉下位机要执行的操作。与该操作相关的数据配置也是通过该方法进行配置。在功能执行结束的标记函数上设置断点待下位机运行到此处触发断点上位机CCS以此得知指定操作执行结束然后查询操作结果全局变量 gError 来获知执行结果。第二代将每个功能包装成单独的可执行文件这是与第一代的本质区别。使用该方法的显著优势是减小了对ram可用空间大小要求。用哪个功能就下载哪个功能的可执行程序。经典产品第一代F28335F28035第二代F280049F2837x结束语山虽高亦可至也。目前我们已经实现了第一代和第二代flash下位机程序开发可以使用CCS对自研芯片的flash进行操作。各位同仁我们共勉。欢迎技术交流但是有偿的()ノ~