一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

STM32CubeIDE實(shí)用技巧之配置Heap空間

jf_pJlTbmA9 ? 來(lái)源:STM32單片機(jī) ? 作者:STM32單片機(jī) ? 2023-10-31 17:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

問(wèn)題描述

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

問(wèn)題分析

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

wKgaomUD4ciAXRBlAADddNVIirg587.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í)別這種情形,用戶(hù)應(yīng)當(dāng)避免這樣的設(shè)置。

驗(yàn)證

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

wKgZomUD4cuAO0nvAACsjQXEThg382.png
wKgZomUD4c2AXBrGAABlsW52NXc575.png

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

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

來(lái)源:STM32單片機(jī)

審核編輯:湯梓紅

聲明:本文內(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)投訴
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1392

    瀏覽量

    117519
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    364868
  • 串口
    +關(guān)注

    關(guān)注

    15

    文章

    1588

    瀏覽量

    79933
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    484

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    STM32CubeIDE入門(mén)教程 STM32CubeIDE安裝使用教程

    STM32CubeIDE是一個(gè)高級(jí)C / C ++開(kāi)發(fā)平臺(tái),具有用于STM32微控制器和微處理器的外設(shè)配置,代碼生成,代碼編譯和調(diào)試功能。它基于Eclipse??/ CDT框架和GCC工具鏈進(jìn)行開(kāi)發(fā),并基于GDB進(jìn)行調(diào)試。它允許
    的頭像 發(fā)表于 06-08 09:19 ?1.1w次閱讀
    <b class='flag-5'>STM32CubeIDE</b>入門(mén)教程 <b class='flag-5'>STM32CubeIDE</b>安裝使用教程

    Ubuntu 18.04 安裝 STM32CubeIDE 小記

    Ubuntu 18.04 安裝 STM32CubeIDE 小記
    發(fā)表于 11-18 17:36 ?9次下載
    Ubuntu 18.04 安裝 <b class='flag-5'>STM32CubeIDE</b> 小記

    STM32CubeIDE使用

    參考STM32CubeIDE屬于一站式工具,本文帶你體驗(yàn)它的強(qiáng)大第一個(gè)STM32CubeIDE項(xiàng)目STM32CubeIDE使用記錄STM32CubeIDE使用筆記(03):使用ST-L
    發(fā)表于 12-02 17:21 ?29次下載
    <b class='flag-5'>STM32CubeIDE</b>使用

    STM32CubeIDE初識(shí)

    STM32CubeIDE初識(shí)
    發(fā)表于 12-02 18:36 ?23次下載
    <b class='flag-5'>STM32CubeIDE</b>初識(shí)

    STM32CubeIDE安裝-NSIS Error問(wèn)題

    STM32CubeIDE安裝-NSIS Error問(wèn)題
    發(fā)表于 12-03 21:06 ?18次下載
    <b class='flag-5'>STM32CubeIDE</b>安裝-NSIS Error問(wèn)題

    STM32CubeIDE的MCU開(kāi)發(fā)

    以前做stm32嵌入式開(kāi)發(fā)均使用的是破解版的keil軟件,現(xiàn)在工作需要無(wú)法按照此步驟進(jìn)行,最近針對(duì)ST官方免費(fèi)軟件STM32CubeIDE進(jìn)行了相關(guān)調(diào)研工作。1 STM32CubeIDE簡(jiǎn)介目前主流
    發(fā)表于 12-05 12:21 ?25次下載
    <b class='flag-5'>STM32CubeIDE</b>的MCU開(kāi)發(fā)

    第一個(gè)STM32CubeIDE項(xiàng)目

    使用STM32CubeIDE的第一個(gè)項(xiàng)目開(kāi)始第一個(gè)項(xiàng)目添加代碼今天開(kāi)始做一個(gè)STM32CubeIDE的第一個(gè)項(xiàng)目,首先需要說(shuō)明的:STM32CubeIDE是一個(gè)免費(fèi)的軟件開(kāi)始第一個(gè)項(xiàng)目在文件菜單中選
    發(fā)表于 12-29 19:29 ?11次下載
    第一個(gè)<b class='flag-5'>STM32CubeIDE</b>項(xiàng)目

    STM32CubeIDE生成的工程

    近日接到一客戶(hù)需求,其欲在 STM32CubeIDE 中指定堆(Heap)的地址到某一專(zhuān)用的RAM 中。
    的頭像 發(fā)表于 07-27 09:40 ?2144次閱讀

    STM32CUBEIDE(1)----安裝

    概述 STM32CubeIDE是一體式多操作系統(tǒng)開(kāi)發(fā)工具,是STM32Cube軟件生態(tài)系統(tǒng)的一部分。 STM32CubeIDE是一種高級(jí)C/C++開(kāi)發(fā)平臺(tái),具有STM32微控制器和微處
    的頭像 發(fā)表于 11-22 09:52 ?1749次閱讀
    <b class='flag-5'>STM32CUBEIDE</b>(1)----安裝

    STM32CubeIDE安裝指南

    電子發(fā)燒友網(wǎng)站提供《STM32CubeIDE安裝指南.pdf》資料免費(fèi)下載
    發(fā)表于 08-01 15:44 ?6次下載
    <b class='flag-5'>STM32CubeIDE</b>安裝指南

    巧用 STM32CubeIDE 編譯警告

    巧用 STM32CubeIDE 編譯警告
    的頭像 發(fā)表于 10-25 16:33 ?1485次閱讀
    巧用 <b class='flag-5'>STM32CubeIDE</b> <b class='flag-5'>之</b>編譯警告

    STM32CubeIDE快速入門(mén)指南

    電子發(fā)燒友網(wǎng)站提供《STM32CubeIDE快速入門(mén)指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 14:29 ?23次下載
    <b class='flag-5'>STM32CubeIDE</b>快速入門(mén)指南

    STM32CubeIDE實(shí)用技巧仿真帶外擴(kuò)FLASH的工程

    電子發(fā)燒友網(wǎng)站提供《STM32CubeIDE實(shí)用技巧仿真帶外擴(kuò)FLASH的工程.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 16:55 ?8次下載
    <b class='flag-5'>STM32CubeIDE</b><b class='flag-5'>實(shí)用技巧</b><b class='flag-5'>之</b>仿真帶外擴(kuò)FLASH的工程

    STM32CubeIDE實(shí)用技巧配置空間

    電子發(fā)燒友網(wǎng)站提供《STM32CubeIDE實(shí)用技巧配置空間.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 15:07 ?8次下載
    <b class='flag-5'>STM32CubeIDE</b><b class='flag-5'>實(shí)用技巧</b><b class='flag-5'>之</b><b class='flag-5'>配置</b>堆<b class='flag-5'>空間</b>

    STM32CubeIDE實(shí)用技巧ld鏈接文件

    電子發(fā)燒友網(wǎng)站提供《STM32CubeIDE實(shí)用技巧ld鏈接文件.pdf》資料免費(fèi)下載
    發(fā)表于 09-20 10:31 ?2次下載
    <b class='flag-5'>STM32CubeIDE</b><b class='flag-5'>實(shí)用技巧</b><b class='flag-5'>之</b>ld鏈接文件