2190|4

111

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

air32f103 ubuntu + vscode + eide + gcc 开发 [复制链接]

本帖最后由 tinnu 于 2023-4-29 22:16 编辑

(一)

合宙新出的AIR32F103 9.9包邮一块板子+芯片,256K RAM,看到如此配置忍不住薅了两块。回来一看发现环境只支持MDK,这能忍?作为一个脱离windows环境的开发者,必须给他整明白了!

 

 

(二)环境搭建

  • 下载SDK:

luatos-soc-air32f103

 

  • 安装vscode 和 eide 扩展

标识符为:cl.eide

 

  • 安装gcc arm none 编译链

 

    - 2021年的gcc7

gcc7
    - 2016年的gcc5    
gcc5

gcc5

 

  • 配置eide

 

由于我的环境里是安装过nxp的mcuxpresso的,所以我直接用自带的gcc none编译链

    "EIDE.ARM.GCC.InstallDirectory": "/usr/local/mcuxpressoide-11.7.0_9198/ide/tools",
    "cortex-debug.gdbPath": "/usr/local/mcuxpressoide-11.7.0_9198/ide/tools/bin/arm-none-eabi-gdb",
    "cortex-debug.armToolchainPath": "/usr/local/mcuxpressoide-11.7.0_9198

 

 

(三)工程搭建

  • 创建工程

 

创建空白工程并打开;如果打不开,先把所有vscode关掉再开一次;主要是由于在linux下 eide 扩展受限于单个软件的堆栈限制,如果要突破限制需要配置 ulimited,否则就要把其他vscode全部关掉给这个工程让路才行。

 

官方例程拷出来:USER、Lib、SYS、CMSIS、STARTUP(.s) 安排上;或者在eide里面加入SDK里面的pack也行。

  • 工程配置

 

- 宏定义
    - USE_STDPERIPH_DRIVER
    - AIR32F10X_MD


- 头文件
    - USER
    - SYSTEM/delay
    - Libraries/CMSIS/Include
    - Libraries/AIR32F10xLib/inc

 

  • 链接脚本

 

既然air32宣称替换stm32,那就直接用stm32的链接脚本吧!

 

 

  • startup.s文件

 

startup文件比较难办,这个是官方没有给出的,而跟stm32又有所差异的。

不过通过多次尝试,还是给我搞了一个脚本出来:

 

  1. 使用stm32 hd系列的startup文件(air32f103 md系列容量资源是跟stm32 hd系列一个规格的)
  2. 增加三个中断函数:
  .word  SYMC_IRQHandler
  .word  RNG_IRQHandler
  .word  SENSOR_IRQHandler
  1. 增加RAM的初始化代码,否则程序上电跑不了

 

Reset_Handler:
/* tinnu add: seems like to start something */
  LDR  R0,=0x400210F0
  MOV R1,#0x00000001
  STR R1,[R0]
  LDR  R2,=0x40016C00
  LDR R3,=0xa7d93a86
  STR R3,[R2]
  LDR R3,=0xab12dfcd
  STR R3,[R2]
  LDR R3,=0xcded3526
  STR R3,[R2]
  LDR R3,=0x200183FF
  STR R3,[R2,#0x18]
  LDR R4,=0x4002228c
  LDR R5,=0xa5a5a5a5
  STR R5,[R4]
  MOV R1,#0x00000000	

 

  • 编译

 

点击

 

 

(四)烧录

 

  • 选择 pyocd 进行烧录

 

下载安装python

sudo apt install python3 python3-pip

下载安装pyocd

pip3 install pyocd -i https://pypi.tuna.tsinghua.edu.cn/simple

 

  • daplink是之前薅汉唐的,最大的特点是typec接口,而下面的彩色线则是薅创芯工坊9.9 daplink配的,至于为什么不用创芯工坊9.9 daplink,因为type A的实在是短了点

linux系统免驱(也有可能是之前安装mcuxpresso的时候加了驱动,反正像创芯工坊9.9 daplink是被识别成nxp link的)

  • 烧录命令

可以直接用stm32f103的支持:

pyocd flash --erase chip --target stm32f103rc ./build/Debug/eide_air32f1_1_gpio.hex

也可以把从gitee拉下来的sdk里面的pack放到目录下,使用pyocd指定pack里面的支持:

pyocd flash --erase chip --target air32f103cb  --pack=Keil.AIR32F103_DFP.1.1.2.pack --base-address 0x8000000 ./build/Debug/eide_air32f1_1_gpio.hex

 

(五)调试

创建launch.json文件:

    "configurations": [
        {
            "cwd": "${workspaceRoot}",
            "type": "cortex-debug",
            "request": "launch",
            "name": "pyocd",
            "servertype": "pyocd",
            "executable": "build/Debug/eide_air32f1_1_gpio.elf",
            "runToEntryPoint": "main",
            "targetId": "air32f103cb",
            "armToolchainPath": "<gcc安装位置>/gcc-arm-none-eabi-5_4-2016q3-20160926-win32/bin",
            "svdFile": ".pack/Keil/AIR32F103_DFP.1.1.2/SVD/AIR32F103xx.svd",
            "toolchainPrefix": "arm-none-eabi"
        }
    ]

 

以上使用了 cortex-debug 支持的 pyocd

 

可以看到svd支持都正常了,可以愉快玩耍。

代码见:https://jihulab.com/tinnu/eide_air32f1_tinnu_exmp

此帖出自单片机论坛

最新回复

 没怎么用过vscode,   详情 回复 发表于 2023-5-14 15:26
点赞 关注
 

回复
举报

1668

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 

air32f103 ubuntu + vscode + eide + gcc 开发这个牵涉东西比较多

跟着楼主学习

此帖出自单片机论坛
 
 

回复

7462

帖子

2

TA的资源

五彩晶圆(高级)

板凳
 

eide  是什么?

此帖出自单片机论坛

点评

一个vscode插件的缩写,搜索cl.eide就能找到; 可以导入管理GCC MDK IAR(最后这个我试没成功过)的工程,一键编译下载  详情 回复 发表于 2023-5-14 14:59
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

111

帖子

0

TA的资源

一粒金砂(中级)

4
 

一个vscode插件的缩写,搜索cl.eide就能找到;

可以导入管理GCC MDK IAR(最后这个我试没成功过)的工程,一键编译下载

此帖出自单片机论坛

点评

 没怎么用过vscode,  详情 回复 发表于 2023-5-14 15:26
 
 
 

回复

7462

帖子

2

TA的资源

五彩晶圆(高级)

5
 
tinnu 发表于 2023-5-14 14:59 一个vscode插件的缩写,搜索cl.eide就能找到; 可以导入管理GCC MDK IAR(最后这个我试没成功过)的工 ...

 没怎么用过vscode,

此帖出自单片机论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复
您需要登录后才可以回帖 登录 | 注册

开源项目 更多>>
    随便看看
    查找数据手册?

    EEWorld Datasheet 技术支持

    相关文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

     
    EEWorld订阅号

     
    EEWorld服务号

     
    汽车开发圈

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表