CooCox成立于2009年初,致力于为ARM开发者提供免费和开源的嵌入式开发工具。CooCox开发了大量基于网络的组件,让嵌入式开发如搭积木般简单。CooCox希望能和所有ARM爱好者一起搭建一个贡献与分享的交流平台。
CooCox工具包括一整套的工具链CoIDE,Colink/CoLinkEx和CoFlash;高级通过管脚配置自动生成代码工具CoSmart;寄存器助手CoAssistant,以及开源的嵌入式操作系统CoOS。各部分简介如下:
1. CooCox CoIDE
基于Eclipse开发的全功能IDE,采用GCC编译器,集成了CoOS和CoAssistant。
作为一款“傻瓜组态式编程”软件,CoIDE将所有的启动代码、外围库、驱动、OS等抽象为一个个组件,其中大部分组件都有相应的例程。使用时,用户只需通过勾选组件和添加例程即可快速建立一个基本的应用。
CoIDE目前含有393个组件&327个例程,既有官方提供的,也有用户上传的。
2. CooCox Colink/CoLinkEx
两款硬件调试器,硬件信息全部公开。包括完整的电路原理图,PCB图,以及元件清单,用户可以轻易DIY。
其中Colink专用于Cortex-M3的JTAG调试,CoLinkEx用于Cortex-M3和Cortex-M0的SWD和JTAG调试。两者均可方便地应用于MDK及IAR(CooCox提供相应驱动),CoIDE和CoFlash中。
3. CooCox CoFlash
一款Flash编程软件,可进行编程,校验,擦除,及检查选定扇区是否为空。
CoFlash具有直观的图形用户界面及命令行两种模式,支持.bin和.elf文件的编程。用户还可以方便地自定义flash编程算法以支持更多flash设备。
之所以写这篇文章的原因是 自己有一个DAP的下载器 平时用keil或者IAR调试程序时都是直接在编译软件上编译完程序之后直接开始下载 后来在一个偶然的机会下 只带了DAP下载器 和HEX程序,于是才想到用CoFlash进行下载,类似于 J-flash
概述
CoFlash 是在由coocox.org开发类别 Miscellaneous Shareware 软件。
最新版本是 CoFlash 的目前未知。 它最初被添加到我们的数据库 2011/02/24 上。
CoFlash 在下列操作系统上运行: Windows/Linux。
CoFlash 已不被评为由我们用户尚未。
软件下载链接
Download CooCox CoFlash 1.5.1Download CooCox CoFlash - Program ARM Cortex-M processors using predefined flash algorithms or write your own ones by following instructions, using a GUI or CLIhttps://www.softpedia.com/get/Programming/Other-Programming-Files/CooCox-CoFlash.shtml
下面主要概述使用CoFlash
CooCox CoFlash是Windows下针对Cortex M系列芯片的Flash编程软件,支持大部分Cortex M系列芯片。CoFlash除了有一个直观的传统的图形用户界面外,它还支持命令行模式。CoFlash配合Colink,CoLinkEx,Nulink等调试器使用。另外,用户还能够定义自己的编程算法来支持更多的flash设备。
特征:
 免费
 支持大多数常见的Cortex M系列微处理器
 支持用户自定义的flash编程算法
 直观的图形用户界面及命令行模式
 支持编程.bin或.elf文件
 保存用户的最后一次配置
其他详情,请查看 http://www.coocox.com/CN/CoFlash_Programmer.htm
支持的调试器如图:
要使用coflash,你有至少一个调试器,需要注意的是:并不是所有的调试器,都支持左边的所有芯片。
Coflash支持图形化界面和命令行模式,两种方式,下面我主要从图形化界面来讲:
Cookie板子为例,芯片当然选择M0516ZN,调试器选择colinkex,其他的配置可以采用默认值。配置好之后进入command页面进行具体操作。
CoFlash 图形用户界面的功能:
 配置
 编程 擦除 校验 空白检测
配置
在使用CoFlash进行flash编程之前,需要进行以下配置:
1. 在MCU树形列表中选择你所使用的MCU;
2. 配置 USB调试器;
3. 添加/移除flash算法(支持多算法),非必选操作。
编程flash设备
1. 在Flash Sector Map框中选择flash算法,配置扇区;
2. 在Data File框中,选择映像文件,目前仅支持.bin或.elf文件;
3. (可选)选择Auto Erase在编程之前擦除flash芯片;
4. (可选)选择Auto Verify在编程之后进行验证;
5. (可选)选择Run After Program在编程之后复位MCU;
6. (可选)在Flash Offset中,指定数据存放的起始偏移地址;
7. 点击Program按钮。
擦除
可以擦除单个或多个扇区。
1. 在下拉选框中选择flash算法。(多个算法时)
2. 在Flash Sector Map中选择想要擦除的扇区。
3. 点击Erase按钮。
校验flash中的内容
将flash里的内容与所要烧写的文件进行比较。
1. 在Data File中,输入映像文件,只支持.bin或.elf文件。
2. 点击Verify 按钮。
下面是我修改了程序 和上次下载到芯片内的程序进行校验 检验错误
空白检测
可以检测一个或多个扇区。
1. 在下拉选框中选择flash算法。(多个算法时)
2. 在Flash sector map中选择想要检测的扇区。
3. 点击Blank Check 按钮。
下面描述一下什么是Flash算法
flash编程算法就是一小段代码,它用来把程序写入到flash存储器中,并处理一些设备信息
程序运行时将执行以下步骤:
1. CoFlash将flash引导程序下载到目标板的RAM中。
2. CoFlash读取应用程序代码,并把它们写入到RAM中(映像数据的缓冲区)。
3. CoFlash开始执行flash驱动程序。
4. Flash驱动程序把RAM里的映像数据烧写到flash存储器中。
5. Flash编程结束。
设置使用自己的flash编程算法
 命令行模式:通过”--driver=FILE”选项。
 图形用户界面模式:在Config选项卡的Flash Driver框中指定自定义的算法文件。
程序结构
编译自定义的flash引导程序
1. 安装ARMGCC编译器。
2. 复制CoFlash\FlashAlgorithm\source\template文件夹,然后重命名它。
3. 编写自定义的FlashInit, FlashUnInit, FlashEraseChip, FlashEraseSector, FlashProgramPage, FlashVerify函数。
4. 在gccProject/makefile文件中修改FLASH_CHIP的值为目标算法的文件名。
5. 通过命令行进入gccProject目录,然后在命令行运行make命令,这时自定义的算法文件将会出现在FlashAlgorithm目录下面。
flash编程算法的API
Flash设备描述符的结构体: