文号
925648
阅读
8487
回复
0
收藏
2
AIR001使用pyocd烧录
2023/09/27
原创
IP:上海

最近想实验一下前阵子买的性感空气001套..件 等到烧录的时候 发现了问题

我用的是eclipse和gnu免费工具链 air001居然不仿成stm32的芯片 openocd还不支持它 无法烧录 用airisp串口烧录 不光速度慢 还没有成功 可能是线路质量不行

于是只能用pyocd加上air001提供的keil pack中的flm算法文件来烧录

air001 pack可用从XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX下载(网页下载需要登录 用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文件 改名成Keil.AIR001_DFP.1.1.0.pdsc 也存放在这个目录下

同时 在这个目录下的Keil子目录(如果没有就新建)下新建一个AIR001_DFP目录 在AIR001_DFP目录下 将air001提供的.pack文件 改名为1.1.0.pack存放 

我用的是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使用


[ 修改于3年1个月前 - 2023/09/27 21:44:48 ]
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的