在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

嵌入式 | 如何在搭載了RT-Thread系統(tǒng)的STM32平臺(tái)上使用C++?

5RJg_mcuworld ? 來(lái)源:YXQ ? 2019-06-20 14:04 ? 次閱讀

本文描述了如何使用在搭載了 RT-Thread 系統(tǒng)的 STM32 平臺(tái)上使用 C++,包括 C++的配置和應(yīng)用等,并給出了在STM32F411 NUCLEO開(kāi)發(fā)板上驗(yàn)證的代碼示例。

硬件平臺(tái)簡(jiǎn)介

本文基于意法半導(dǎo)體STM32F411 NUCLEO開(kāi)發(fā)板,給出了 C++的具體應(yīng)用示例代碼,由于RT-Thread上層應(yīng)用API的通用性,因此這些代碼不局限于具體的硬件平臺(tái),用戶可以輕松將它移植到其它平臺(tái)上。

STM32F411 NUCLEO是意法半導(dǎo)體推出的一款基于ARM Cortex-M4內(nèi)核的開(kāi)發(fā)板,最高主頻為100Mhz,該開(kāi)發(fā)板具有豐富的板載資源,可以充分發(fā)揮STM32F411RE 的芯片性能。

STM32F411RE從屬于銷量名列前茅的STM32F4系列,眾所周知,F(xiàn)4是STM32主打高性能和數(shù)字信號(hào)處理的“輕奢”系列。

“奢侈”在F4作為內(nèi)核為Cortex-M4 (DSP+FPU)的MCU,可選180MHz 主頻、2M Flash/384KB RAM、Chrom-ART加速器、MPI-DSI接口、延伸到125度的工作溫度、DFSDM數(shù)字濾波器以及各種常見(jiàn)的音頻(SAI)、連接(Ethernet、Camera、USB)、控制(CANUARTI2C)、存儲(chǔ)(FMC、2/4/8 bits SPI、SDMMC)外設(shè)。

“輕”在價(jià)格讓人“輕松”、尺寸“輕巧”(不到3mm*3mm的封裝)、功耗“輕微”。

如何在STM32上使用C++

準(zhǔn)備工作

1、下載RT-Thread 源碼

2、下載ENV 工具

3、進(jìn)入rt-threadspstm32f411-st-nucleo目錄,檢查 BSPrtconfig.py文件和SConstruct文件是否支持C++配置,如下圖所示

檢查rtconfig.py文件中對(duì)C++的支持

檢查SConstruct文件中對(duì)C++的支持

打開(kāi)C++支持:

打開(kāi)Env工具,在Env命令行中輸入menuconfig,進(jìn)入配置界面,使用menuconfig工具(學(xué)習(xí)如何使用)配置工程。在menuconfig配置界面依次選擇RT-Thread Components ---> C++ features ---> Support C++ features,如圖所示:

編譯工程:scons --target=mdk51. 生成mdk5工程,將示例代碼附帶的main.cpp替換掉BSP中的main.c并重新加入到工程中,如圖所示:

編譯,下載程序,在終端輸入help命令可以看到test_cpp已經(jīng)添加成功了。

運(yùn)行C++程序:

在終端輸入test_cpp運(yùn)行結(jié)果如下圖所示。

C++ 全局對(duì)象構(gòu)造函數(shù)的調(diào)用

RT-Thread中對(duì)全局對(duì)象構(gòu)造函數(shù)的實(shí)現(xiàn)中,以GNUC為例,在rt-threadcomponentscplusplus目錄下的crt_init.c文件中對(duì)C++進(jìn)行了系統(tǒng)初始化, 在特定的BSP目錄下,連接腳本文件link.lds為C++全局構(gòu)造函數(shù)的代碼分配了段,使C++全局對(duì)象構(gòu)造函數(shù)鏈接后能夠存放在指定的段中。如下圖所示:

crt_init.c文件完成了C++系統(tǒng)的初始化工作

C++系統(tǒng)初始化部分:

 1RT_WEAKintcplusplus_system_init(void) 2{ 3typedefvoid(*pfunc)(); 4externpfunc__ctors_start__[]; 5externpfunc__ctors_end__[]; 6pfunc*p; 7 8for(p=__ctors_start__;p

在cplusplus_system_init函數(shù)中,將全局對(duì)象的構(gòu)造函數(shù)依次鏈接到了鏈接腳本文件中為其分配的段中,并且調(diào)用了RT-Thread組件自動(dòng)初始化的宏INIT_COMPONENT_EXPORT,所以在鏈接的時(shí)候,C++全局對(duì)象構(gòu)造函數(shù)所產(chǎn)生的目標(biāo)文件就被鏈接到了__ctors_start__和__ctors_end__組成的段中。

鏈接腳本中為C++全局構(gòu)造函數(shù)分配的段部分:

1PROVIDE(__ctors_start__=.);2KEEP(*(SORT(.init_array.*)))3KEEP(*(.init_array))4PROVIDE(__ctors_end__=.);

__ctors_start__分配了C++全局構(gòu)造函數(shù)段的起始地址,__ctors_end__分配了C++全局構(gòu)造函數(shù)段的結(jié)束地址,所以全局構(gòu)造函數(shù)在系統(tǒng)初始化的時(shí)候,就會(huì)被鏈接到這里分配的段地址中。

RT-Thread C++ 異常說(shuō)明

同樣,在鏈接腳本文件link.lds中,也為C++異常分配了段地址:

1__exidx_start=.;2ARM.exidx:3{4*(.ARM.exidx*.gnu.linkonce.armexidx.*)5_sidata=.;6}>CODE7__exidx_end=.;

__exidx_start分配了C++異常的起始地址,__exidx_end分配了C++異常的結(jié)束地址,當(dāng)異常產(chǎn)生的時(shí)候,就會(huì)被分配到指定的段地址中。

這里以一個(gè)C++除零異常的拋出和捕獲為例:

 1#include 2 3#defineMIN_VALUE(1e-4) 4#defineIS_DOUBLE_ZERO(d)(abs(d)

當(dāng)除零異常發(fā)生的時(shí)候div_func函數(shù)會(huì)拋出一個(gè)異常,在throw_exceptions函數(shù)中會(huì)去捕獲這個(gè)異常。

下載代碼,并在終端輸入throw_exceptions運(yùn)行結(jié)果如下圖所示。

到這一步為止,如何在搭載了RT-Thread系統(tǒng)的STM32平臺(tái)上如何使用C++的介紹就結(jié)束了。

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

    關(guān)注

    2291

    文章

    11019

    瀏覽量

    363056
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2117

    瀏覽量

    74889

原文標(biāo)題:如何在搭載了RT-Thread系統(tǒng)的STM32平臺(tái)上使用C++?

文章出處:【微信號(hào):mcuworld,微信公眾號(hào):嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RT-Thread嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班-深圳站重磅開(kāi)啟!

    RT-Thread官方將在深圳舉辦為期三天的嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班!本次培訓(xùn)將深入講解RT-Thread嵌入式實(shí)時(shí)操作
    的頭像 發(fā)表于 04-11 18:18 ?237次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>嵌入式</b>操作<b class='flag-5'>系統(tǒng)</b>專業(yè)培訓(xùn)班-深圳站重磅開(kāi)啟!

    RT-Thread嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班來(lái)上海啦!

    RT-Thread官方將在上海(RT-Thread大本營(yíng))發(fā)起為期三天的嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班!本次培訓(xùn)將會(huì)深入講解RT-Thread
    的頭像 發(fā)表于 02-27 17:27 ?354次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>嵌入式</b>操作<b class='flag-5'>系統(tǒng)</b>專業(yè)培訓(xùn)班來(lái)上海啦!

    RT-Thread嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班登陸鄭州!

    RT-Thread官方將在河南-鄭州發(fā)起為期三天的嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班!本次培訓(xùn)將深入講解RT-Thread嵌入式實(shí)時(shí)操作
    的頭像 發(fā)表于 02-12 18:28 ?342次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>嵌入式</b>操作<b class='flag-5'>系統(tǒng)</b>專業(yè)培訓(xùn)班登陸鄭州!

    清華大學(xué)出版社推出RT-Thread新作,助力嵌入式開(kāi)發(fā)人才培養(yǎng)

    RT-Thread第16本權(quán)威著作,助力嵌入式開(kāi)發(fā)人才培養(yǎng)近日,清華大學(xué)出版社出版由楊衛(wèi)波、莊友誼、阮秀凱老師編寫(xiě)的最新教材——《嵌入式系統(tǒng)
    的頭像 發(fā)表于 01-16 19:07 ?477次閱讀
    清華大學(xué)出版社推出<b class='flag-5'>RT-Thread</b>新作,助力<b class='flag-5'>嵌入式</b>開(kāi)發(fā)人才培養(yǎng)

    RT-Thread操作系統(tǒng)應(yīng)用開(kāi)發(fā)寒假師資培訓(xùn)

    隨著物聯(lián)網(wǎng)和智能系統(tǒng)的快速發(fā)展,嵌入式成為當(dāng)前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。為進(jìn)一步提升全國(guó)大學(xué)生在嵌入式芯片及系統(tǒng)設(shè)計(jì)領(lǐng)域的創(chuàng)新能力,特別是針對(duì)物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)中
    的頭像 發(fā)表于 12-06 01:06 ?420次閱讀
    <b class='flag-5'>RT-Thread</b>操作<b class='flag-5'>系統(tǒng)</b>應(yīng)用開(kāi)發(fā)寒假師資培訓(xùn)

    意法半導(dǎo)體STM32支持RT-Thread開(kāi)源4+服務(wù),助力企業(yè)用戶加速嵌入式開(kāi)發(fā)

    嵌入式系統(tǒng)和物聯(lián)網(wǎng)技術(shù)的快速發(fā)展使得企業(yè)對(duì)高效、穩(wěn)定的嵌入式解決方案需求愈加迫切。STM32加入RT-Thread開(kāi)源4+服務(wù)生態(tài),這一合作
    的頭像 發(fā)表于 11-26 01:04 ?863次閱讀
    意法半導(dǎo)體<b class='flag-5'>STM32</b>支持<b class='flag-5'>RT-Thread</b>開(kāi)源4+服務(wù),助力企業(yè)用戶加速<b class='flag-5'>嵌入式</b>開(kāi)發(fā)

    RT-Thread聯(lián)合河北大學(xué)發(fā)起嵌入式操作系統(tǒng)專業(yè)班-保定站

    RT-Thread官方將在11月23至24日河北省保定市(河北大學(xué))發(fā)起為期兩天的嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班暨RT-Thread師資培訓(xùn)!本次培訓(xùn)將會(huì)深入講解
    的頭像 發(fā)表于 11-16 01:09 ?492次閱讀
    <b class='flag-5'>RT-Thread</b>聯(lián)合河北大學(xué)發(fā)起<b class='flag-5'>嵌入式</b>操作<b class='flag-5'>系統(tǒng)</b>專業(yè)班-保定站

    【本周六-深圳】RT-Thread嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班正式開(kāi)班

    RT-Thread官方在本周六將發(fā)起為期三天的嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班!本次培訓(xùn)將會(huì)深入講解RT-Thread嵌入式實(shí)時(shí)操作
    的頭像 發(fā)表于 11-08 01:07 ?542次閱讀
    【本周六-深圳】<b class='flag-5'>RT-Thread</b><b class='flag-5'>嵌入式</b>操作<b class='flag-5'>系統(tǒng)</b>專業(yè)培訓(xùn)班正式開(kāi)班

    跟著RT-Thread學(xué)嵌入式?我們開(kāi)班

    RT-Thread官方即將發(fā)起為期三天的嵌入式操作系統(tǒng)專業(yè)培訓(xùn)班!本次培訓(xùn)將會(huì)深入講解RT-Thread嵌入式實(shí)時(shí)操作
    的頭像 發(fā)表于 10-22 08:05 ?494次閱讀
    跟著<b class='flag-5'>RT-Thread</b>學(xué)<b class='flag-5'>嵌入式</b>?我們開(kāi)班<b class='flag-5'>了</b>!

    【上海】9月21日RT-Thread巡回線下培訓(xùn)-RTduino 10分鐘上手嵌入式

    親愛(ài)的RT-Thread社區(qū)成員們:RT-Thread24年全球巡回培訓(xùn)將覆蓋超10座城市及國(guó)家,為開(kāi)發(fā)者提供一個(gè)深入學(xué)習(xí)RT-Thread嵌入式開(kāi)發(fā),以及和工程師們線下交流的絕佳機(jī)會(huì)
    的頭像 發(fā)表于 09-15 08:12 ?584次閱讀
    【上海】9月21日<b class='flag-5'>RT-Thread</b>巡回線下培訓(xùn)-RTduino 10分鐘上手<b class='flag-5'>嵌入式</b>

    課程上線 - RT-Thread應(yīng)用開(kāi)發(fā)實(shí)踐課程上線慕課平臺(tái)啦!

    我們非常高興地告訴大家,由廣東機(jī)電職業(yè)技術(shù)學(xué)院的老師們制作的,使用《RT-Thread應(yīng)用開(kāi)發(fā)實(shí)踐》作為教材的課程——嵌入式操作系統(tǒng)應(yīng)用,正式上線慕課平臺(tái)啦!歡迎各位想要
    的頭像 發(fā)表于 09-14 08:07 ?612次閱讀
    課程上線 - <b class='flag-5'>RT-Thread</b>應(yīng)用開(kāi)發(fā)實(shí)踐課程上線慕課<b class='flag-5'>平臺(tái)</b>啦!

    新書(shū)發(fā)布——《RT-Thread嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核、驅(qū)動(dòng)和應(yīng)用開(kāi)發(fā)技術(shù)》

    我們非常高興地宣布,由鄭苗秀、沈鴻飛和廖建尚編著的《RT-Thread嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核、驅(qū)動(dòng)和應(yīng)用開(kāi)發(fā)技術(shù)》一書(shū)正式發(fā)布。本書(shū)的編寫(xiě)團(tuán)隊(duì)由多位在嵌入式和實(shí)時(shí)操作
    的頭像 發(fā)表于 09-03 08:06 ?1244次閱讀
    新書(shū)發(fā)布——《<b class='flag-5'>RT-Thread</b><b class='flag-5'>嵌入式</b>實(shí)時(shí)操作<b class='flag-5'>系統(tǒng)</b>內(nèi)核、驅(qū)動(dòng)和應(yīng)用開(kāi)發(fā)技術(shù)》

    【武漢】9月7日RT-Thread巡回線下培訓(xùn)-RTduino-10分鐘上手嵌入式

    親愛(ài)的RT-Thread社區(qū)成員們:2024年RT-Thread全球開(kāi)發(fā)者線下培訓(xùn)拉開(kāi)帷幕啦!24年全球巡回培訓(xùn)將覆蓋超10座城市及國(guó)家,為開(kāi)發(fā)者提供一個(gè)深入學(xué)習(xí)RT-Thread嵌入式
    的頭像 發(fā)表于 08-31 08:05 ?719次閱讀
    【武漢】9月7日<b class='flag-5'>RT-Thread</b>巡回線下培訓(xùn)-RTduino-10分鐘上手<b class='flag-5'>嵌入式</b>

    【QEMU系列】不用開(kāi)發(fā)板運(yùn)行RT-Thread指南-ARM架構(gòu)

    成為一個(gè)門檻。本文將詳細(xì)介紹如何在QEMU虛擬機(jī)的Vexpress-A9平臺(tái)上運(yùn)行RT-Thread,幫助開(kāi)發(fā)者在沒(méi)有實(shí)際硬件開(kāi)發(fā)板的情況下,輕松體驗(yàn)和學(xué)習(xí)RT-Th
    的頭像 發(fā)表于 08-09 08:35 ?1495次閱讀
    【QEMU系列】不用開(kāi)發(fā)板運(yùn)行<b class='flag-5'>RT-Thread</b>指南-ARM架構(gòu)

    RT-Thread全球嵌入式電子設(shè)計(jì)大賽—報(bào)名即將截止!

    RT-Thread嵌入式電子設(shè)計(jì)大賽旨在匯聚全球嵌入式系統(tǒng)開(kāi)發(fā)者和學(xué)生,通過(guò)實(shí)際項(xiàng)目展示他們?cè)谖锫?lián)網(wǎng)、智能設(shè)備等領(lǐng)域的創(chuàng)新和技術(shù)實(shí)力。本次大賽提供
    的頭像 發(fā)表于 07-16 08:35 ?1445次閱讀
    <b class='flag-5'>RT-Thread</b>全球<b class='flag-5'>嵌入式</b>電子設(shè)計(jì)大賽—報(bào)名即將截止!
    主站蜘蛛池模板: 午夜免费啪| 2018天堂视频免费观看 | 国产综合在线播放 | 欧美又黄又嫩大片a级 | 色91视频 | 色偷偷亚洲综合网亚洲 | 色5月婷婷 | 亚欧成人中文字幕一区 | 日本黄色免费网站 | 香蕉爱爱网 | 午夜寂寞影视 | 国产中文字幕一区 | 一级特黄特黄xxx视频 | 成人免费国产gav视频在线 | 国产视频每日更新 | 日本黄色片黄色片 | 亚洲香蕉影院 | 婷婷六月综合 | 欧美午夜视频 | 九九九国产在线 | 49pao强力在线高清基地 | 日韩a毛片 | 亚洲色五月| 亚洲男人的天堂在线播放 | 特黄一级大片 | 亚洲色啦啦狠狠网站 | 成人av在线播放 | 黄色二级视频 | 色综合久久五月 | 久草在线免费资源站 | 丁香婷婷色综合 | 可以免费看黄的网址 | 日日夜夜操天天干 | 婷婷综合网站 | 亚洲一级毛片中文字幕 | 日本加勒比在线精品视频 | 高清一区二区三区 | 久久久久久夜精品精品免费啦 | 日韩欧美理论 | 高h乱肉辣文辣书阁 | 成人毛片一区二区三区 |