2275|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
点赞 关注
 

回复
举报

1704

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 

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

跟着楼主学习

此帖出自单片机论坛
 
 

回复

7618

帖子

18

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
 
 
 

回复

7618

帖子

18

TA的资源

五彩晶圆(高级)

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

 没怎么用过vscode,

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

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

 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
USB转串口芯片PL-2303驱动程序

USB转串口芯片PL-2303驱动程序

世界十大奇图 眼睛欺骗大脑 你看懂了吗?

世界十大奇图 眼睛欺骗大脑 你看懂了吗? 一 柱子是圆的还是方的? 二 狮子在那里? 三 据说看到9张脸的人智商是180

可控硅专辑---原理篇、参数篇、应用篇、检测篇

可控硅专辑(原理篇) 目录 可控硅元件的工作原理及基本特性可控硅元件—可控硅元件的结构可控硅知识的问与答可控硅元件— ...

300余种常用芯片资料!快来下载吧!论坛下载免费,添加115网盘!

大量器件资料,分享给大家!必须下完所有附件才能解压哟! 70396 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ ...

Verilog 实现任意占空比、任意分频的方法

分频程序虽然简单,但我觉得由简入难是学习的一个必然阶段,慢慢的我们自然会成长起来。所以如果有时间的话,大家都可以将自己 ...

电流输出 DAC 对比电压输出 DAC

随着电子产品的普及,人们希望将数字系统与模拟世界连接起来以实现变化,因而对数模转换器 (DAC) 的需求也日益增长。虽然设计 ...

城市小区密密麻麻的 家家户户的WIFI为什么不能像5G基站一样覆盖共用了?

像基那样覆盖 是不是可以和5G那样,我们就可以无缝连接随地上网 站在马路边一搜一大串

【先楫HPM6750测评】GPIO点灯和按键控制

本帖最后由 xusiwei1236 于 2022-5-22 20:12 编辑 【先楫HPM6750测评】GPIO点灯和按键控制 上篇帖子中,我们介绍了如何安 ...

Pyvisa 电子负载驱动

厂商:Chroma ——————————————&mdash ...

一起读《动手学深度学习(PyTorch版)》- 多层感知机 - 激活函数

多层感知机,隐藏层和输出层之间的全连接层如果全部是线性相关的话,那么多层感知机可以等价于单层感知机,因为线性关系的堆积仍 ...

关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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