• 370查看
  • 0回复

[底层软件] (二)ECloudIDE入门STM32-自带寄存器版工程使用

[复制链接]


该用户从未签到

发表于 2-3-2024 15:12:32 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


3.1 转换插件使用方法

由于市面上绝大部分STM32教程是基于Keil软件教学,而ECloudIDE是基于GCC编译器(gcc-arm-none-eabi),两者在工程管理上存在一些差异,无法直接使用,我们团队提供了一个转换插件用与将Keil工程转换成ECloudIDE工程。

(二)ECloudIDE入门STM32-自带寄存器版工程使用w1.jpg

(二)ECloudIDE入门STM32-自带寄存器版工程使用w2.jpg

图3.1 Keil5与GNU吉祥物

keil2platformio.rar gitee链接:https://gitee.com/wllis121/keil2ecloudide.git

目前该插件只支持Keil5软件和STM32F10x系列芯片,其他芯片还在抓紧测试验证中...,这里一"实验3 按键实验"为例演示如何转换Keil工程为ECloudIDE工程

  第一步:复制"keil2platformio"插件到工程目录下

(二)ECloudIDE入门STM32-自带寄存器版工程使用w3.jpg

  图3.2 keil2platformio文件夹拷贝位置
  第二步: 运行""插件

  进入到实验代码路径中,运行"keil2platformio/keil2platformio.py"文件, ./USER/为xx.uvprojx文件所在目录
python keil2platformio/keil2platformio.py ./USER/
  运行完后会出现下面效果

(二)ECloudIDE入门STM32-自带寄存器版工程使用w4.jpg

  图3.3 正常运行keil2platformio.py转换keil5工程效果

(二)ECloudIDE入门STM32-自带寄存器版工程使用w5.jpg

  图3.4 成功转换keil5生成的platformio.ini文件
  第三步:打包上传代码至ECloudIDE

  将生成在USER下的platfomio.ini文件拷贝的本实验文件的主目录下,如图3.5所示,然后将其压缩成xx.zip文件

(二)ECloudIDE入门STM32-自带寄存器版工程使用w6.jpg

  图3.5 更改platformio.ini文件位置,并压缩成xx.zip文件
  第四步:修改编译错误

  修改位置1:

  将第36行的"+<main.c>"修改为"+<USER/main.c>"
[platformio]include_dir = .src_dir = .
[env:KEY]platform = ststm32framework = cmsisboard = genericSTM32F103RBbuild_flags =
    -IHARDWARE/LED
    -ISYSTEM/delay
    -ISYSTEM/sys
    -ISYSTEM/usart
    -IUSER
    -ISTM32F10x_FWLib/inc
    -ICORE
    -IHARDWARE/KEY
    -IHARDWARE/BEEP
    -D__nop=__NOPbuild_src_filter =
    -<*>
    +<startup_stm32f10x_md.s>
    +<USER/main.c>
    +<HARDWARE/LED/led.c>
    +<HARDWARE/KEY/key.c>
    +<HARDWARE/BEEP/beep.c>
    +<SYSTEM/delay/delay.c>
    +<SYSTEM/sys/sys.c>
    +<SYSTEM/usart/usart.c>
    +<README.TXT>

修改位置2:

出现图3.6所示错误时,需要将stm32f10x.h中的"#define STM32F10X_MD"宏定义打开,然后再次编译

(二)ECloudIDE入门STM32-自带寄存器版工程使用w7.jpg

图3.6 提示stm32f10x.h错误

(二)ECloudIDE入门STM32-自带寄存器版工程使用w8.jpg

图3.7 芯片类型宏定义选项
修改位置3:

出现如图3.8所示语法错误时,需要将keil编译器识别的汇编语法全部修改为gcc所能识别的语法

(二)ECloudIDE入门STM32-自带寄存器版工程使用w9.jpg

图3.8 汇编语法错误

修改前sys.c文件中的keil能识别的汇编语句,位于文件第124~144
//THUMB指令不支持汇编内联//采用如下方法实现执行汇编指令WFI  __asmvoidWFI_SET(void){    WFI;          }//关闭所有中断__asmvoidINTX_DISABLE(void){    CPSID I;          }//开启所有中断__asmvoidINTX_ENABLE(void){    CPSIE I;          }//设置栈顶地址//addr:栈顶地址__asmvoidMSR_MSP(u32 addr){    MSR MSP, r0             //set Main Stack value    BX r14}
修改后sys.c文件中的gcc能识别的汇编语句
//THUMB指令不支持汇编内联//采用如下方法实现执行汇编指令WFI  voidWFI_SET(void){asm("WFI");          }//关闭所有中断voidINTX_DISABLE(void){asm("CPSID I");          }//开启所有中断voidINTX_ENABLE(void){asm("CPSIE I");          }//设置栈顶地址//addr:栈顶地址voidMSR_MSP(u32 addr){asm("MSR MSP, r0");             //set Main Stack valueasm("BX r14");}第五步:编译下载

(二)ECloudIDE入门STM32-自带寄存器版工程使用w10.jpg

图3.9 编译工程

(二)ECloudIDE入门STM32-自带寄存器版工程使用w11.jpg

图3.10 下载工程

到这里我们就完成了按键实验Keil工程到ECloudIDE工程的转换,其它例子也都可以按照这个方法来进行





该用户从未签到

发表于 14-3-2025 20:47:01 | 显示全部楼层
关于ECloudIDE入门STM32-自带寄存器版工程使用的转换插件使用方法,针对您提到的Keil与ECloudIDE之间的转换问题,我们团队开发了专门的转换插件。该插件能帮助您将Keil工程顺利转换为ECloudIDE工程,适用于STM32开发。使用方法简便,您只需按照提供的gitee链接下载插件,解压并参照相关教程即可完成安装。转换后,您就能在ECloudIDE环境中进行STM32开发,享受GCC编译器的优势。如有任何问题,欢迎咨询。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 14-3-2025 20:47:01 | 显示全部楼层
针对ECloudIDE入门STM32-自带寄存器版工程使用的转换插件使用方法,鉴于Keil与ECloudIDE的差异,我们团队提供了转换插件以适配两者。具体使用方法为:

1. 首先,下载并解压keil2platformio.rar文件。
2. 访问gitee链接:https://gitee.com/wllis121/keil2ecloudide.git,获取最新的转换插件。
3. 安装转换插件并按照插件的使用说明进行操作。通常情况下,需要打开Keil工程,通过插件功能将其转换为ECloudIDE工程。
4. 转换完成后,在ECloudIDE中打开新生成的工程,根据需要进行调整和优化。

注意:转换过程中可能遇到一些问题,需根据具体情况进行调试。建议熟悉Keil与ECloudIDE的基本操作后再进行转换。此外,转换后的工程可能需要进行一些手动调整以适应ECloudIDE环境。
回复 支持 反对

使用道具 举报

快速发帖

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

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 20-8-2025 01:01 , Processed in 0.375281 second(s), 38 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.