如何实现OpenOCD 烧录 N32G45x 的芯片固件
查阅了一下资料,最接近 N32G457VEL 芯片的是 STM32F1x 系列的,于是使用 stm32f1x.c 作为基础进行修改,增加了 0x511 作为 N32G45x 系列芯片的 device_id,配置 page_size=2048, max_flash_size_in_kb = 512(N32G45x 好像没有 Flash Size Regiser 无法直接获取flash大小,最好在 openocd 脚本中自己指定 FLASH_SIZE)重新编译openocd, 但是一直无法完成 program 的过程,有哪位搞过这个吗?谢谢,请多指导 另外,代码里面有一个 stm32x_info->ppage_size 的参数,不知道用途,如何确定这个参数的值呢? 搞定了,经过测试擦除、保护等操作都是正常的,只有写入失败了,查看手册,n32g45x 只支持uint32_t 写入,不支持 uint16_t写入,找到问题就好办了,从 stm32f1x.c 拷贝一份生成代码生成 n32g45x.c, 然后修改 stm32_write_block 方法,改成 4字节写入就可以了 厉害. ice系列 icecut 发表于 2023-3-3 17:39
厉害. ice系列
哈哈,你好 ICE..
最近折腾 CMake + OpenOCD,终于都走通了, gcc, clang, armcc 都搞定了,不再需要 keil 的 ide了,vscode 或者 clion 挺好 iceant 发表于 2023-3-3 17:56
哈哈,你好 ICE..
最近折腾 CMake + OpenOCD,终于都走通了, gcc, clang, armcc 都搞定了,不再需要 kei ...
看样咱们的想法很一致啊. 你要不要搞个文档分享一下? 不过我还没搞定过. 已经完美支持n32g45x flash 和 debug,代码如下
https://github.com/iceant/openocd
- 支持异步写入,速度很快,比一开始使用的字拷贝方式提升不少
- 支持 IAP/APP 分别刷入不同的区域
使用例子
set FLASH_SIZE 0x70000
set BASEADDR 0x08010000
adapter driver cmsis-dap
transport select swd
source
adapter speed 10000 正好我也遇到openocd 调试的问题,参考一下,谢谢! 感谢大佬的OpenOCD代码,学习到了 这个为什么不使用keil直接烧录呢? 可以用来调试stm32吗 OpenOCD为嵌入式目标系统提供一个调试,在线编程和JTAG边界扫描测试的工具。 用openocd做操作端? 如何修改openocd.cfg配置文件 Openocd+dap烧flash失败 我用的是IAR 5.11 + OpenOCD调试 下载程序 参考 开源项目OPENOCD 如何编译Windows下的OpenOCD OpenOCD这 个软件是做什么的? 怎么用openocd往板子里面烧入编译过的程序
页:
[1]
2