0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何轉(zhuǎn)換Keil工程為ECloudIDE工程

CHANBAEK ? 來源: 想啥做啥 ? 作者: 想啥做啥 ? 2023-11-30 15:48 ? 次閱讀

3.1 轉(zhuǎn)換插件使用方法

由于市面上絕大部分STM32教程是基于Keil軟件教學(xué),而ECloudIDE是基于GCC編譯器( gcc-arm -none-eabi),兩者在工程管理上存在一些差異,無法直接使用,我們團(tuán)隊提供了一個轉(zhuǎn)換插件用與將Keil工程轉(zhuǎn)換成ECloudIDE工程。

目前該插件只支持Keil5軟件和STM32F10x系列芯片,其他芯片還在抓緊測試驗(yàn)證中...,這里一"實(shí)驗(yàn)3 按鍵實(shí)驗(yàn)"為例演示如何轉(zhuǎn)換Keil工程為ECloudIDE工程

第一步:復(fù)制"keil2platformio"插件到工程目錄下

第二步: 運(yùn)行""插件

進(jìn)入到實(shí)驗(yàn)代碼路徑中,運(yùn)行"keil2platformio/keil2platformio.py"文件, ./USER/為xx.uvprojx文件所在目錄

運(yùn)行完后會出現(xiàn)下面效果

圖片

圖3.3 正常運(yùn)行keil2platformio.py轉(zhuǎn)換keil5工程效果

圖片

圖3.4 成功轉(zhuǎn)換keil5生成的platformio.ini文件

第三步:打包上傳代碼至ECloudIDE

將生成在USER下的platfomio.ini文件拷貝的本實(shí)驗(yàn)文件的主目錄下,如圖3.5所示,然后將其壓縮成xx.zip文件

圖片

圖3.5 更改platformio.ini文件位置,并壓縮成xx.zip文件

第四步:修改編譯錯誤

修改位置1:

將第36行的"+"修改為"+"

[platformio]
include_dir = .
src_dir = .


[env:KEY]
platform = ststm32
framework = cmsis
board = genericSTM32F103RB
build_flags = 


    -IHARDWARE/LED


    -ISYSTEM/delay


    -ISYSTEM/sys


    -ISYSTEM/usart


    -IUSER


    -ISTM32F10x_FWLib/inc


    -ICORE


    -IHARDWARE/KEY


    -IHARDWARE/BEEP


    -D__nop=__NOP
build_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:

出現(xiàn)圖3.6所示錯誤時,需要將stm32f10x.h中的"#define STM32F10X_MD"宏定義打開,然后再次編譯

圖片

圖3.6 提示stm32f10x.h錯誤

圖片

圖3.7 芯片類型宏定義選項

修改位置3:

出現(xiàn)如圖3.8所示語法錯誤時,需要將keil編譯器識別的匯編語法全部修改為gcc所能識別的語法

圖片

圖3.8 匯編語法錯誤

修改前sys.c文件中的keil能識別的匯編語句,位于文件第124~144

//THUMB指令不支持匯編內(nèi)聯(lián)
//采用如下方法實(shí)現(xiàn)執(zhí)行匯編指令WFI  
__asm void WFI_SET(void)
{
    WFI;          
}
//關(guān)閉所有中斷
__asm void INTX_DISABLE(void)
{
    CPSID I;          
}
//開啟所有中斷
__asm void INTX_ENABLE(void)
{
    CPSIE I;          
}
//設(shè)置棧頂?shù)刂?/span>
//addr:棧頂?shù)刂?/span>
__asm void MSR_MSP(u32 addr) 
{
    MSR MSP, r0             //set Main Stack value
    BX r14
}

修改后sys.c文件中的gcc能識別的匯編語句

//THUMB指令不支持匯編內(nèi)聯(lián)
//采用如下方法實(shí)現(xiàn)執(zhí)行匯編指令WFI  
void WFI_SET(void)
{
    asm("WFI");          
}
//關(guān)閉所有中斷
void INTX_DISABLE(void)
{
    asm("CPSID I");          
}
//開啟所有中斷
void INTX_ENABLE(void)
{
    asm("CPSIE I");          
}
//設(shè)置棧頂?shù)刂?/span>
//addr:棧頂?shù)刂?/span>
void MSR_MSP(u32 addr) 
{
    asm("MSR MSP, r0");             //set Main Stack value
    asm("BX r14");
}

第五步:編譯下載

圖片

圖3.9 編譯工程

圖片

圖3.10 下載工程

到這里我們就完成了按鍵實(shí)驗(yàn)Keil工程到ECloudIDE工程的轉(zhuǎn)換,其它例子也都可以按照這個方法來進(jìn)行

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    50212

    瀏覽量

    420949
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354300
  • STM32F10x
    +關(guān)注

    關(guān)注

    1

    文章

    81

    瀏覽量

    20651
  • keil
    +關(guān)注

    關(guān)注

    68

    文章

    1210

    瀏覽量

    166580
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1617

    瀏覽量

    49015
收藏 人收藏

    評論

    相關(guān)推薦

    轉(zhuǎn):STM32 IAR工程->Keil MDK轉(zhuǎn)換詳解

    工程文件夾內(nèi)。 第三步、ADC_MDK工程添加使用到的庫函數(shù)文件,然后進(jìn)行編譯。 最后的工程目錄: 只需以上三步,不用改動任何代碼就能搞定IAR
    發(fā)表于 02-03 10:41

    keil創(chuàng)建多工程工作空間

    請教一下大家,我用keil5創(chuàng)建多工程工作空間(new multi-project workspace)選擇完兩個工程后,兩個工程可以打卡,但是我把
    發(fā)表于 08-21 10:10

    DAVE工程轉(zhuǎn)成keil工程引腳配置怎么改?

    小弟,在弄英飛凌單片機(jī)遇到如下問題,希望能得到大神指點(diǎn)一下。DAVE工程轉(zhuǎn)成keil工程,在Keil uVision5中編譯代碼,想改引腳配置怎么在
    發(fā)表于 11-18 08:36

    RISC-V MCU開發(fā) (十一):跨內(nèi)核工程轉(zhuǎn)換

    至RISC-V內(nèi)核,MRS增加了Keil工程轉(zhuǎn)換的功能?!?b class='flag-5'>工程轉(zhuǎn)換】1、在主界面工具欄,點(diǎn)擊“Import
    發(fā)表于 10-15 10:05

    分享個keil/IAR的bin文件轉(zhuǎn)換器,可以在keil工程中直接調(diào)用

    自己寫的,用于將MDK的axf文件、IAR的out文件轉(zhuǎn)換成bin文件,bin文件用產(chǎn)品代號、軟件版本號、編譯日期、bin文件size等信息命名,方便軟件版本管理??梢栽?b class='flag-5'>keil工程中直接調(diào)用。
    發(fā)表于 01-10 14:09

    用rtthread studio建好的工程可以直接導(dǎo)出Keil工程嗎?

    rt-threat系統(tǒng)的好處是用rtthread studio很容易得到資源實(shí)現(xiàn)目標(biāo),但調(diào)試太麻煩,不知道現(xiàn)在能不能直接導(dǎo)出keil工程
    發(fā)表于 08-20 11:42

    如何將rtthread studio工程轉(zhuǎn)成keil工程?

    rtthread studio 工程轉(zhuǎn)keil工程
    發(fā)表于 09-03 10:47

    LPC17XX_Keil工程模板

    LPC17XX_Keil工程模板,非常實(shí)用的源碼。
    發(fā)表于 01-12 18:28 ?15次下載

    keil5如何建工程

    北京科技大學(xué)MEI團(tuán)隊提供的如何使用keil5如何建工程,比較實(shí)用
    發(fā)表于 07-14 11:32 ?11次下載

    Keil4-建立STM32工程詳解

    Keil4-建立STM32工程詳解
    發(fā)表于 02-03 10:34 ?41次下載

    VS CODE下使用KEIL ASSISTANT編輯KEIL工程文件結(jié)構(gòu)

    在使用keil assistant打開KEIL文件時編輯器沒辦法向工程中添加或者刪除文件。下面教大家如何添加:1.用VS CODE 打開工程所在文件夾2.找到帶.uvproj結(jié)尾的
    發(fā)表于 11-21 14:51 ?14次下載
    VS CODE下使用<b class='flag-5'>KEIL</b> ASSISTANT編輯<b class='flag-5'>KEIL</b><b class='flag-5'>工程</b>文件結(jié)構(gòu)

    STM32Keil工程模板創(chuàng)建(詳細(xì)配圖)

    STM32Keil工程模板創(chuàng)建(詳細(xì)配圖)
    發(fā)表于 11-25 11:06 ?11次下載
    STM32<b class='flag-5'>Keil</b><b class='flag-5'>工程</b>模板創(chuàng)建(詳細(xì)配圖)

    RISC-V MCU開發(fā) (十 一):跨內(nèi)核工程轉(zhuǎn)換

    RISC-V MCU開發(fā) (十一):跨內(nèi)核工程轉(zhuǎn)換大多數(shù)嵌入式工程師使用Keil進(jìn)行開發(fā),但Keil目前不支持RISC-V內(nèi)核,只支持ARM
    發(fā)表于 12-07 19:06 ?6次下載
    RISC-V MCU開發(fā) (十 一):跨內(nèi)核<b class='flag-5'>工程</b><b class='flag-5'>轉(zhuǎn)換</b>

    keil5新建STM32工程文件--理論篇(以STM32F103例)

    Keil5新建工程模板(理論基礎(chǔ)篇)
    發(fā)表于 12-08 09:06 ?18次下載
    <b class='flag-5'>keil</b>5新建STM32<b class='flag-5'>工程</b>文件--理論篇(以STM32F103<b class='flag-5'>為</b>例)

    KEIL5如何打開KEIL4的GD工程

    GD官方提供的很多KEIL例程KIEL4的版本,讀者使用的時候可能會碰到使用KEIL5打開KEIL4的工程會報錯以及無法找到芯片選型的問題
    的頭像 發(fā)表于 01-11 09:43 ?814次閱讀
    <b class='flag-5'>KEIL</b>5如何打開<b class='flag-5'>KEIL</b>4的GD<b class='flag-5'>工程</b>