日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

STM32CubeIDE生成的工程

STM32單片機(jī) ? 來(lái)源:STM32單片機(jī) ? 作者:STM32單片機(jī) ? 2022-07-27 09:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

關(guān)鍵詞:STM32CubeIDE, Heap, 堆, __sbrk

問(wèn)題描述

近日接到一客戶需求,其欲在 STM32CubeIDE 中指定堆(Heap)的地址到某一專用的RAM 中。

問(wèn)題分析

STM32CubeIDE 生成的工程中,默認(rèn)的堆棧配置示意圖如圖 1 所示:

c83cde7c-0d44-11ed-ba43-dac502259ad0.png

解決方法

通過(guò) STM32CubeIDE 生成的工程中,會(huì)默認(rèn)生成 sysmem.c。這個(gè)文件中的

__sbrk_heap_end 指針默認(rèn)賦值為 NULL,我們只需要更改這個(gè)指針為目標(biāo)地址即可達(dá)到期望。

例如:默認(rèn)配置是“static uint8_t *__sbrk_heap_end = NULL;”我們希望將堆的地址分配到 0x20001000 為起始的空間上,可以這樣做:

“static uint8_t *__sbrk_heap_end = (uint8_t*)0x20001000;”

注意:由于堆(heap)向上增長(zhǎng),棧(stack)向下增長(zhǎng),所以在手動(dòng)更改堆的起始地址時(shí),如果定義的堆和??臻g存在重疊區(qū)域,STM32CubeIDE 無(wú)法識(shí)別這種情形,用戶應(yīng)當(dāng)避免這樣的設(shè)置。

驗(yàn)證

在 STM32CubeIDE 生成的串口打印的工程,然后按照上面示例修改 sysmem.c 中的__sbrk_heap_end 參數(shù)。

c86028aa-0d44-11ed-ba43-dac502259ad0.png

c87dd058-0d44-11ed-ba43-dac502259ad0.png

可以看到 heap_pointer 指針通過(guò) malloc 申請(qǐng)到的地址,已經(jīng)指向了目標(biāo) RAM 范圍內(nèi)了。

注意,這里我們?cè)?0x20001000 開始的位置申請(qǐng)了 10 個(gè)字節(jié)的空間,理論上heap_pointer 應(yīng)當(dāng)從 0x20001000 開始計(jì)算,但是由于 malloc 在申請(qǐng)的地址時(shí),會(huì)占用 8個(gè)字節(jié)用來(lái)存儲(chǔ)狀態(tài)等信息,所以 heap_pointer 指針從 0x20001008 開始。這是STM32CubeIDE 使用了 newlib 庫(kù)來(lái)實(shí)現(xiàn) malloc 的機(jī)制所致,不影響用戶的使用。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4897

    瀏覽量

    90308
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1401

    瀏覽量

    121064
  • 工程
    +關(guān)注

    關(guān)注

    0

    文章

    170

    瀏覽量

    29839

原文標(biāo)題:工程師筆記 |STM32CubeIDE 實(shí)用技巧之配置 Heap 空間

文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    LAT1621_STM32N6 在 PSRAM 上運(yùn)行代碼的調(diào)試

    STM32N657X0H3Q。客戶的代碼很大,不能放在SRAM 上運(yùn)行,想放在 PSRAM 上去運(yùn)行,并咨詢?nèi)绾卧?STM32CubeIDE 上進(jìn)行調(diào)試。
    發(fā)表于 03-11 10:44 ?0次下載

    常見 MCU 開發(fā)環(huán)境對(duì)比:Keil、IAR、VS Code 該選誰(shuí)?

    開發(fā)環(huán)境對(duì)比表,幫助你快速掌握。01STM32系列主要IDE:STM32CubeIDE、KeilMDK、IAREWARM特點(diǎn):官方支持STM32CubeMX生成
    的頭像 發(fā)表于 01-09 19:03 ?2060次閱讀
    常見 MCU 開發(fā)環(huán)境對(duì)比:Keil、IAR、VS Code 該選誰(shuí)?

    意法半導(dǎo)體:STM32CubeMX將不再集成到STM32CubeIDE

    從2025年11月發(fā)布的版本開始,我們將僅以 獨(dú)立 版本的形式提供 STM32CubeIDESTM32CubeMX 。 STM32CubeMX將不再集成到STM32CubeIDE
    的頭像 發(fā)表于 09-01 17:18 ?3944次閱讀

    求助,關(guān)于NanoEdge AI Studio生成的庫(kù)交叉編譯器版本疑問(wèn)求解

    20231009\", 那么問(wèn)題來(lái)了,怎么在NanoEdge AI Studio設(shè)定交叉編譯器呢,比如設(shè)置為armcc、armclang、iccram,因?yàn)槲倚枰獙?kù)加到keil或者iar工程里面。 看樣子這個(gè)軟件生成的庫(kù)是arm-gcc編譯的,那它只能用于官方的
    發(fā)表于 08-08 07:25

    關(guān)于STMCubeIDE創(chuàng)建工程BUG怎么解決?

    問(wèn)題描述 當(dāng)在STM32CubeIDE中創(chuàng)建一個(gè)新的STM32項(xiàng)目時(shí),"STM32Cube"單選按鈕可能會(huì)變得無(wú)反應(yīng),阻止產(chǎn)品選擇屏幕后的“下一步”按鈕。這妨礙了
    發(fā)表于 08-08 06:59

    stm32cubeide官網(wǎng)賬號(hào)登錄一直顯示登錄失敗是怎么回事?

    stm32cubeide官網(wǎng)下載軟件需要登錄賬號(hào),今天突然登錄不了,且不能找回密碼。
    發(fā)表于 07-23 07:52

    CubeIDE生成MP257的M33工程出現(xiàn)RCC配置問(wèn)題怎么解決?

    我在Ubuntu虛擬機(jī)環(huán)境下運(yùn)行CubeIDE1.17.0,嘗試通過(guò)ioc配置MP257DAK3的M33程序,然而生成代碼時(shí),出現(xiàn)該問(wèn)題: Main Config
    發(fā)表于 07-11 06:53

    STM32CubeIDE報(bào)錯(cuò)編譯STM32MP135(Projects\\STM32MP135C-DK\\External_Loader)的原因?

    _1.18.1/STM32CubeIDE/plugins
    發(fā)表于 07-11 06:19

    使用STM32CubeIDE調(diào)試STM32MP157D的M4內(nèi)核時(shí)報(bào)了下圖這個(gè)錯(cuò)誤,怎么解決?

    我使用STM32CubeIDE調(diào)試STM32MP157D的M4內(nèi)核時(shí)報(bào)了下圖這個(gè)錯(cuò)誤: 經(jīng)過(guò)我的排除后發(fā)現(xiàn),應(yīng)該是STM32CubeIDE上傳&quot
    發(fā)表于 06-18 06:57

    安裝STM32CUBEIDE時(shí)提示Error launching installer,為什么?

    安裝STM32CUBEIDE時(shí)提示Error launching installer,我的電腦設(shè)置的是中文簡(jiǎn)體,殺毒軟件也推出了,怎么才能安裝軟件?
    發(fā)表于 06-18 06:06

    請(qǐng)問(wèn)stm32cubeide中如何查看版本日志?

    stm32cubeide中如何查看版本日志?看能支持哪些芯片型號(hào)?
    發(fā)表于 06-09 07:44

    stm32cubeIDE使用malloc失敗是什么原因?

    我在stm32cubeIDE環(huán)境下,已經(jīng)分配了足夠的棧與堆空間,但是我在的使用malloc分配內(nèi)存時(shí),一直分配不成功,這是什么原因?
    發(fā)表于 06-09 07:24

    請(qǐng)問(wèn)STM32CubeIDE能直接在軟件中升級(jí)嗎?

    STM32CubeIDE能直接在軟件中升級(jí)嗎?
    發(fā)表于 06-06 07:40

    stm32cubeIDE使用malloc失敗是什么原因?

    我在stm32cubeIDE環(huán)境下,已經(jīng)分配了足夠的棧與堆空間,但是我在的使用malloc分配內(nèi)存時(shí),一直分配不成功,這是什么原因?
    發(fā)表于 06-04 07:18

    請(qǐng)問(wèn)STM32CubeIDE能直接在軟件中升級(jí)嗎?

    STM32CubeIDE能直接在軟件中升級(jí)嗎?
    發(fā)表于 05-14 06:06
    乌兰县| 庆云县| 班玛县| 兴海县| 郑州市| 梁平县| 布拖县| 伊金霍洛旗| 津市市| 苏尼特左旗| 建德市| 濮阳县| 珠海市| 香河县| 剑河县| 绩溪县| 托克托县| 齐齐哈尔市| 城步| 新和县| 巴彦淖尔市| 黄山市| 阿拉善左旗| 滦南县| 邻水| 杨浦区| 阿瓦提县| 会昌县| 垣曲县| 阜阳市| 襄垣县| 左权县| 霍州市| 昆明市| 兴文县| 岳池县| 资溪县| 双城市| 开鲁县| 信丰县| 关岭|