移植鴻蒙系統到STM32L476RG_NUCLEO開發板的一點小經驗

2022-01-05 HarmonyOS官方合作社區

template(「 gcc_toolchain」){

    工具鏈(target_name){

        斷言(已定義(invoker.cc),「 gcc工具鏈必須指定一個\「 cc \」值「)

        斷言(已定義(invoker.cxx),「 gcc工具鏈必須指定一個\「 cxx \」值「)

        斷言(已定義(invoker.ld),「 gcc工具鏈必須指定一個\「 ld \」值「)

        斷言(已定義(invoker.ar),「 gcc工具鏈必須指定一個\「 ar \」值「)

        斷言(定義(invoker.as),「「工具鏈必須指定一個\」 as \「值」)

        斷言(定義(invoker.cp),「「工具鏈必須指定一個\「 cp \」值」)

        

        ar = invoker.ar

        as =調用者

        cc = invoker.cc

        cxx = invoker.cxx

        ld = invoker.ld

        cp = invoker.cp

        need_strip =否

        if(defined(invoker.strip)){

            剝離= invoker.strip

            need_strip = true

        }

        如果(defined(invoker.extra_

ldflags)&&invoker.extra_ldflags!=「」){

          extra_ldflags =「」

        }其他{

          extra_ldflags =「」

        }

        工具(「 cc」){

            命令=「 $ cc -c {{cflags}} {{defines}} {{include_dirs}} {{cflags_c}}」 +

                     #「 -MMD -MP -MF'{{source_out_dir}} / {{source_name_part}}。d'」 +

                     #「 -Wa,-a,-ad,-alms = {{source_out_dir}} / {{source_name_part}}。lst」 +

                      「 {{source}} -o {{output}}」

            depsformat =「 gcc」

            description =「跨編譯器{{output}}」

            輸出= [

                「 {{source_out_dir}} / {{source_name_part}}。o」,

            ]

        }

        工具(「 cxx」){

            depfile =「 {{output}}。d」

            命令=「 $ cxx -c {{cflags}} {{defines}} {{include_dirs}} {{cflags_c}}」 +

                     #「 -MMD -MP -MF'{{source_out_dir}} / {{source_name_part}}。d'」 +

                     #「 -Wa,-a,-ad,-alms = {{source_out_dir}} / {{source_name_part}}。lst」 +

                      「 {{source}} -o {{output}}」

            depsformat =「 gcc」

            description =「 CXX {{output}}」

            輸出= [

                「 {{source_out_dir}} / {{target_output_name}}。{{source_name_part}}。o」,

            ]

        }

        工具(「 asm」){

            depfile =「 {{output}}。d」

            command =「 $ as -c {{cflags}} {{defines}} {{include_dirs}} {{asmflags}} {{source}} {{cflags_c}}」 +

                      「 -o {{輸出}}」

            depsformat =「 gcc」

            description =「跨編譯器{{output}}」

            輸出= [

                「 {{source_out_dir}} / {{source_name_part}}。o」

            ]

        }

        工具(「連結」){

            outfile =「 {{output_dir}} / {{target_output_name}} {{output_extension}}」

            rspfile =「 {{output}}。rsp」

            rspfile_content =「 {{inputs}}」

            命令=「 $ ar cr {{輸出}} @ \」 $ rspfile \「」

            description =「 AR {{output}}」

            輸出= [

                超越

            ]

            default_output_dir =「 {{root_out_dir}} / libs」

            default_output_extension =「 .a」

            output_prefix =「 lib」

        }

        工具(「連結」){

            outfile =「 {{output_dir}} / bin / {{target_output_name}}。elf」

            rspfile =「 $ outfile.rsp」

            command =「 $ ld {{inputs}} {{ldflags}} $ extra_ldflags -specs = nano.specs」 +

            #在供應商路徑中設置ld文件補丁

                      「 -lc -lm -lnosys {{libs}} -Wl,-Map = {{target_output_name}}。map,-cref」 +

                      「 -Wl,-gc-sections -o $ outfile」

            if(need_strip){

                命令+ =「 && $ cp -O二進位-S $ outfile {{output_dir}} / bin / {{target_output_name}}。bin」

            }

            description =「 LINK $ outfile」

            default_output_dir =「 {{root_out_dir}}」

            rspfile_content =「 {{inputs}}」

            輸出= [

                超越

            ]

        }

        工具(「郵票」){

            如果(host_os ==「 win」){

                命令=「 cmd / c類型nul> \」 {{輸出}} \「」

            }其他{

                命令=「 / usr / bin / touch {{輸出}}」

            }

            description =「 STAMP {{output}}」

        }

        工具(「複製」){

            命令=「 $ cp -O二進位-S {{源}} {{輸出}}。bin && echo $ strip」

            description =「 COPY {{源}} {{輸出}}」

        }

    }

相關焦點

  • [原創]STM32L476RG Nuleo 評測
    該系列包含2條不同的產品線:STM32L476(USB、LCD)和STM32L486(USB、LCD、AES)。為了簡化移植步驟和為您提供所需的靈活性,STM32L4與不同的STM32系列均引腳兼容,為您打開了通往整個STM32生態體系的大門。
  • 簡評STM32L476-NUCLEO
    這周一收到了論壇寄給的STM32L476-NUCLEO評估板,上電看到LED在閃爍: 這幾天就忙著網上搜資料,查相關的知識,業餘時間有限,先簡單說明幾點: 1、L476的編譯器:在這先說明一下,STM32L476-NUCLEO的編譯我使用的IAR,STM32L476實在是太新了
  • 貿澤電子開售ST STM32WL Nucleo-64開發板 支持全球第一款LoRa Soc
    系列新款MCU的STMicroelectronics (ST) STM32WL Nucleo-64 開發板。STM32WL是全球首款將LoRa® 收發器集成到其晶片的無線MCU,符合工業和消費類物聯網 (IoT) 市場各種低功耗廣域網 (LPWAN) 無線應用的要求。        貿澤電子供應的ST NUCLEO-WL55JC1和NUCLEO-WLJC2開發板為設計工程師提供一種經濟實惠的靈活方式來嘗試新的sub-GHz無線通信概念。
  • 編輯推薦 沒有最低,只有更低——超低功耗STM32L476 NUCLEO評測
    「 前兩天收到二姨家寄來的STM32L476 NUCLEO開發板,板載的STM32L476RGT6微控制器是ST公司推出的一款集高性能與低功耗特性於一體的
  • NUCLEO-L452RE快速入門之mbed的使用
    使用mbed一樣能像使用Arduino那樣避開硬體驅動層,mbed提供的方法也都是面向對象的,只要看得懂單詞,就能夠操作開發板上引出來到埠。具體操作這些埠時,它們的名稱可以查看「STM32 Nucleo-64 board用戶手冊」,裡面有詳細的引腳名稱對照圖。
  • STM32平臺RT-Thread最小系統移植搭建 - STM32F107VCT6
    前言手頭有幾塊之前畫的STM32系列的開發板,最近熟悉了RT-Thread,所以移植RT-Thread,進一步學習RT-Thread各種應用。
  • 如何讓Arduino IDE支持你手裡的STM32 nucleo開發板
    ,STM32F100RB-DISCVL,STM32F407G-DISC,STM32F746G-DISCOVERY那麼當你的手裡有以上列表中的某個板子的話,怎麼樣才能讓你的板子支持使用Arduino IDE開發環境去開發呢?
  • 全教程:TencentOS tiny 移植到 STM32F103(基於標準庫) | CSDN 博文精選
    傑傑將在下文講解如何將 TencentOS tiny 移植到工程中去,以及如何把 TencentOS tiny 源碼中的核心部分單獨提取出來,方便以後在不同的平臺上移植。目前使用的是 TencentOS tiny 最新版本,由於 TencentOS tiny 在不斷更新,如果以後 TencentOS tiny 更新到更高的版本,則以最新的版本為準。
  • STM32F072 Nucleo開發板評測
    意法半導體自加入ARM embed項目以來,從發布Nucleo系列開發板,到完全展開基於Cortex-M0、M3、M4內核的Nucleo開發板產品線僅僅用了短短半年不到的時間
  • 低功耗,大容量–NUCLEO-L496ZG開發板評測
    ST官方推出的Nucleo系列板已有20多款,涵蓋了從Cortex-M0到Cortex-M7大部分的產品,也就是從低功耗到高性能的全系列產品。其中L4系列綜合了低功耗與高性能的優勢,算是一款折衷的方案。L4系列從最初的L476/L486,發展到今天的L496及L4A6,在系統主頻方面沒有做大的更改,主要在存儲及外設方面做了更多的改進,使得產品適用面更廣,用戶選擇面也更廣泛。
  • 開發板評測 | STM32 Nucleo-64開發板 + 串口通信
    這次示範的是STM32 Nucleo-64開發板,型號是STM32L053R8T6。
  • 手把手教學,RW007 模塊連接 STM32 Nucleo 開發板
    (複製口令到X寶即可購買:¥wqprYZY7A6t¥)更多信息見推文:睿賽德科技推出高速Wi-Fi模塊RW007:內置RT-Thread物聯網作業系統STM32F401 Nucleo-64STM32 Nucleo-64 是 ST 官方推出的開發板,搭載 STM32F401RE 晶片,基於 ARM Cortex-M4
  • STM32F103RCT6開發板M3單片機教程01--點亮LED(基於光明谷SUN_STM32mini開發板)
    本教程使用是(光明谷SUN_STM32mini開發板)免費開發板在谷動谷力:http://bbs.sunsili.com, (複製電腦瀏覽器打開) 註冊用戶,打卡,發帖求助都可以獲取積分,當然最主要是發原創應用文檔獎勵更多積分.
  • 基於RT-Thread在STM32H7上移植LWIP(一)
    二、RT-Thread、STM32H7、LWIP簡介RT-Thread是一個來自中國的開源物聯網作業系統,它提供了非常強的可伸縮能力:從一個可以運行在ARM Cortex-M0晶片上的極小內核,到中等的ARM Cortex-M3/4/7系統,甚至是運行於MIPS32、ARM Cortex-A系列處理器上功能豐富系統。
  • STM32L432KC 測評
    另一方面:NUCLEO-L432KC開發板是首個集成一款QFN32微型封裝微控制器的Nucleo-32開發板,板載一顆STM32L432KCU6微控制器(UFQFPN32)。三、L432 的特色:OPAMP(可編程運放單元)   如英文版的用戶手冊描述:它的正向輸入端可連接到內部DAC;輸出端可連接到內部的ADC   如下為引腳連接功能:
  • 【DIY數字儀表】STM32F429移植TouchGFX到RT-Thread系統(1)
    RT-Thread的BSP模板:1.學習RT-Thread系統(學過的可以跳過此步驟)2.移植BSP參考官方使用 Env 創建 RT-Thread 項目工程的教程選擇 BSP獲取 RT-Thread 原始碼後需要根據自己手上的開發板型號找到對應的 BSP,我實驗所使用的是野火的STM32F29 V1開發板,所以可以選擇stm32f29-fire-challenger的BSP
  • 關於STM32Cube的幾個常見問題
    二、STM32cube固件庫支持哪些開發學習板?答:STM32Cube庫支持的STM32的開發板可就多了。以STM32CubeF4固件包為例,它目前支持的開發板有:STM324x9I_EVAL,STM324xG_EVAL, STM32446E_EVAL, STM32F4-Discovery, STM32F401-Discovery,STM32F429I-Discovery, STM32F4xx-Nucleo, STM32469I_EVAL STM32469I-Discovery,STM32F446E-Nucleo
  • STM32F407 DP83848驅動調試過程總結(標準庫到HAL庫移植避坑指南)
    初始化的HAL庫項目要從之前的STM32F107平臺移植到STM32F407平臺,我的任務主要是底層的移植,讓程序在新的平臺可以正常運行,主要包含的功能有IIC EEPROM LED ETH LWIP UART這幾個的初始化和實現。
  • 詳細操作 | UCOSIII移植到STM32F407
    移植分三步走:1、下載移植文件2、添加文件到自己工程文件夾3、加載文件工程中,並修改相關文件1、下載移植文件找到與STM32F407接近的晶片(通過查找STM32F429II-SK符合STM32F407,官網沒有直接移植好STM32F407,若有就好了,就根本不用移植了)STM32F429II-SK,並將它下載下來,下來需要註冊才能下載,這裡我就直接下來了,文件位置:官方 uCOS-III 源碼。