OpenOCD 添加 AIR105(上)

本文详细介绍了Air105芯片的驱动编写,重点讲解了air105_probe和air105_write函数,以及如何通过ROMAPI进行程序烧录。文章还讨论了烧录原理、注意事项和不同文件类型的烧录测试结果。作者提出了优化建议,如使用DMA和调整超时时间以提高烧录效率。

前言

  • 1)芯片简介:SC300 + Cortex-M4F内核,最高频率 204Mhz,片上内建 640KB SRAM 和 4MB Flash

    • ARM SecurCore SC300 核心
      • 32-bit RISC Core(ARMv7-M)
      • MPU 内存保护单元
      • 最高 204MHz 主频(1、2 分频可调)
      • FPU 单元
      • 1 个受控 JTAG-DP/SW-DP 调试端口
    • 640 KB RAM
    • 1 个 QSPI 控制器, 支持 XIP
    • 4 UART、3 SPI、1 I2C、8 Timer、1 LCDI、1 DMA、1 USB、1 ADC/DAC、1 DCMI
  • 2)烧录原理:

    • (1)OpenOCD 常规烧录驱动方式为:将一小段程序传送到芯片 RAM 内,由该程序将目标文件从 RAM 中通过异步或同步的方式搬运到芯片 FLASH 中。

    • (2)AIR105 的数据手册没有列出 FLASH 的相关详情,只提供了一个 FLASH 相关的 ROM API,所以本文章通过调用 ROM API 来实现程序烧录。

  • 4)ROM API 如下:

    // air105_rom_falsh_api @ 0x00008010UL :
    #define ROM_QSPI_Init                   (*((void     (*)(QSPI_InitTypeDef    *))             (*(uint32_t *)0x8010)))
    #define ROM_QSPI_ReadID                 (*((uint32_t (*)(QSPI_CommandTypeDef *))             (*(uint32_t *)0x8014)))
    #define ROM_QSPI_WriteParam             (*((uint8_t  (*)(QSPI_CommandTypeDef *, uint16_t))   (*(uint32_t *)0x8018)))
    #define ROM_QSPI_EraseSector            (*((uint8_t  (*)(QSPI_CommandTypeDef *, uint32_t))   (*(uint32_t *)0x801C))
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值