C/C++教程

[开发生态] 烧录N32G457是否有更便捷的方法?可以用CoFlash

本文主要是介绍[开发生态] 烧录N32G457是否有更便捷的方法?可以用CoFlash,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

整体概览
开发单片机应用到最后都会涉及到生产烧录一个重要环节,这样也就催生出了一大产业——代烧录。那常用的烧录方式包括两大类和来自多种供应商渠道,分为在线烧录和脱机离线烧录,有些是芯片原厂自己设计提供给用户,有些是用户根据某些指定接口协议自制工装,有些是第三方专业烧录工具厂家提供相应服务。顾名思义,在线烧录需要工具连接 PC 机,对使用对象有一定操作技能的要求,但一般成本较低且流程不会太复杂,而离线烧录工具一般是将要烧录的文件提前放置于机器内且带有显示屏显示烧录流程,用户自己设计的话相对较为困难,第三方厂商提供的大多较贵。在踌躇于该选择怎样的烧录方式时,找到这么一种操作简便且成本较低的烧录方法——使用 CoFlash 上位机配合 CMSIS-DAP 调试工具。接下来的内容整体可分为以下几点:
 

  1. N32G45XVL-STB 开发板简介
  2. CoFlash 上位机简介
  3. 适配 N32G457VEL7 流程
  4. 操作演示


一、N32G45XVL-STB 开发板简介
考虑到身边只有一块国民技术的开发板——N32G45XVL-STB 开发板,刚好它也符合实验条件:板载了 CMSIS-DAP-NSLink 调试烧录器。N32G45XVL-STB 开发板用于国民技术股份有限公司高性能 32 位 N32G45XVL 系列芯片的样片开发,板载芯片型号为 N32G457VEL7,LQFP100 管脚封装 ,开发板把所有的功能接口都连接出来,方便客户开发。
关于 N32G45XVL-STB 开发板的其它资源介绍在此不作过多说明,用户可以参阅附件内容。

二、CoFlash 上位机简介
CooCox CoFlash 是 Windows下针对 Cortex M 系列芯片的 Flash 编程软件,支持大部分 Cortex M系列芯片。CoFlash 除了有一个直观的传统的图形用户界面外,它还支持命令行模式。CoFlash 配合 Colink,CoLinkEx,Nulink 等调试器使用。另外,用户还能够定义自己的编程算法来支持更多的 Flash 设备。
其他更多详情,可以查看官方介绍:  http://www.coocox.com/CN/CoFlash_Programmer.htm

三、适配 N32G457VEL7 流程
由于下载安装好 CoFlash 后,发现该上位机暂时未能支持国产芯片 N32G457VEL7 ,而且国民官方也没有相应的技术支持,那么就需要自己动手去做好该芯片的适配工作了。总所周知,该芯片为 STM32 的国产替代产品,那很多生态方面的资源都可以参照 ST 的去做,所以我的思路也很清晰,先找到 ST 的一个最为相似的产品范本,然后在此基础上根据 N32G457 芯片本身特性去做修改。下面是我的适配工作流程:
1. 明确要准备好哪些东西
查看 CoFlash  的安装目录,分析清楚各个目录下包含了哪些内容的文件,最终确定要准备好: 烧录算法文件 N32G457VEL7_512.elf ;设备资源描述文件 N32G457VEL7_512K.xml ;设备内存分配描述文件 n32g457vel7.xml (调试时候用)。
2. 如何制作 N32G457VEL7 的烧录算法
-- 在安装目录  \src\flash\source 下,包含了自带的一些芯片烧录算法原工程文件,可以在这里面挑选一个作为参考。仔细对比分析 Flash 和 IWDG 的基地址情况发现 STM32F05x / STM32F10x 这两个原工程最适合,可以任意选择一项。新增一个工程文件夹如下:


-- 修改编程驱动源文件中的关键点,其中 FLASH_WDG_SW 预编译定义值需要改为 0x00000004 ,适配 N32G457VEL7 ;另外 FlashProgramPage()函数需要修改,按照 Word 对齐方式进行编程,这里可以参照官方提供的 FLM 编程算法工程
-- 修改器件内存属性说明文件,要注意 Flash 的页大小为 2K
-- 修改 Makefile 文件中的 CHIP 名称,FLASH_CHIP = N32G457VEL7_512
-- 使用该 GCC 编译驱动文件进行 make ,得到烧录算法,再将 N32G457VEL7_512.elf 文件拷贝到 安装目录  \flash 文件夹下
-- 在安装目录  \config\devices 目录下添加国民技术的器件说明文件夹命名为 Nationstech ,然后同样拷贝一份 STM32F05x/STM32F10x 的器件描述文件,命名为 N32G457VEL7_512K.xml ,再根据实际内存资源大小改写文件
-- 最后在安装目录  \config\debugger 下创建 n32g457vel7.xml ,该文件描述了 AHB/APB1/APB2 总线上挂载的外设基地址情况以及器件的 Flash 和 RAM 大小,如果不在 CooCox IDE 中进行调试的话,该文件可暂时不改动内容,用到时再按照 UM手册中的 图 3-2 总线地址映射图修改,另外还要注意 M4 内核 ID 为 0x2BA01477 。
到此,N32G457VEL7 芯片的 CoFlash 工具适配工作已经完成,可以进行测试使用了。

四、操作演示
实验中使用自己制作的按键和闪灯多 Task 示例工程,其中还有 SEGGER 的硬件错误定位函数包和 RTT 插件,可以作为 Template 使用。开发板起初在 KEIL 工程中擦除了全片,正常烧录程序运行起来后,可以看到 3 个用户指示灯交替闪烁。视频不便于上传(加上后超过篇幅限制了​),至于附件压缩包中。
---------------------
作者:yang377156216
链接:https://bbs.21ic.com/icview-3212446-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

这篇关于[开发生态] 烧录N32G457是否有更便捷的方法?可以用CoFlash的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!