最近想实验一下前阵子买的性感空气001套..件 等到烧录的时候 发现了问题
我用的是eclipse和gnu免费工具链 air001居然不仿成stm32的芯片 openocd还不支持它 无法烧录 用airisp串口烧录 不光速度慢 还没有成功 可能是线路质量不行
于是只能用pyocd加上air001提供的keil pack中的flm算法文件来烧录
air001 pack可用从XXXXXXXXXXXXXXXXX/openLuat/luatos-soc-air001下载(网页下载需要登录 用git下载可以不登录)
pyocd则需要修改index.json文件 手动增加air001的条目如下(你们可用ctrl-c ctrl-v 不用手动)
"AIR001xx32": {
"name": "AIR001xx32",
"memories": {
"IROM1": {
"p_name": null,
"access": {
"read": true,
"write": false,
"execute": true,
"peripheral": false,
"secure": false,
"non_secure": false,
"non_secure_callable": false
},
"start": 134217728,
"size": 32768,
"startup": true,
"default": true
},
"IRAM1": {
"p_name": null,
"access": {
"read": true,
"write": true,
"execute": false,
"peripheral": false,
"secure": false,
"non_secure": false,
"non_secure_callable": false
},
"start": 536870912,
"size": 4096,
"startup": false,
"default": true
}
},
"algorithms": [
{
"file_name": "Flash/Air001.FLM",
"start": 134217728,
"size": 32768,
"default": true,
"ram_start": null,
"ram_size": null,
"style": "Keil"
}
],
"processors": [
{
"core": "CortexM0Plus",
"fpu": "None",
"mpu": "NotPresent",
"ap": 0,
"dp": 0,
"apid": null,
"address": null,
"svd": null,
"name": null,
"unit": 0,
"default_reset_sequence": null
}
],
"from_pack": {
"vendor": "Keil",
"pack": "AIR001_DFP",
"version": "1.1.0",
"url": "https://www.keil.com/pack/"
},
"vendor": "STMicroelectronics:13",
"family": "AIR001xx Series",
"sub_family": "AIR001xx32"
},
这个文件在如 C:\Users\???\AppData\Local\cmsis-pack-manager\cmsis-pack-manager目录下
同时将air001提供的.pdsc文件 改名成XXXXXXXR001_DFP.1.1.0.pdsc 也存放在这个目录下
同时 在这个目录下的Keil子目录(如果没有就新建)下新建一个AIR001_DFP目录 在AIR001_DFP目录下 将air001提供的.pack文件 改名为XXXXXXXXck存放
我用的是1.1.0版本pack文件 所以index.json文件的内容 以及文件名都用了这个版本号 以后如果有不同版本 注意都要修改 文件名和index.json的内容要对上
然后 pyocd pack -s就可用找到air001的名字了 叫air001dev 就可用用pyocd flash -t air001dev <.hex文件>的方法烧录了 可用放到eclipse的外部命令里面 点个图标就进行下载
。。。。。。。
此外air001提供下载的内容 一眼望去(以下内容并未深入确定) 还提供了flm的源代码 如果遇到其他没有提供烧录方法的arm芯片 可以通过修改其代码关于mcudbg寄存器地址 flash页面大小等东西 编译成新flm文件结合pyocd使用
[修改于 1年4个月前 - 2023/09/27 21:44:48]