娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年06月01日(星期日)

2018年06月01日 | 導出函數給APP調用出現malloc無法分配內存的問題

發布者:huanli 來源: eefocus關鍵字:導出函數  APP調用  malloc  分配內存 手機看文章 掃描二維碼
隨時隨地手機看文章

實現IAP升級APP這個功能沒有什么問題,但是想把APP中相對固定的函數移植到bootloader中,從而減少APP空間代碼,減少升級時間。

APP通過調用bootloader導出的函數接口,實現相關功能的調用。
代碼舉例
在bootloader導出如下接口給APP使用
int exp_forapp_A(void)
{
int k = 5;
return k;
}


int exp_forapp_B(void)
{
int k = 2;
unsigned char *p = malloc(100);
if(p)
{
k = 5
free(p);
p = NULL;
}
return k;
}


在APP的代碼調用以上函數
調用exp_forapp_A函數,能夠得到正確的返回值5
調用exp_forapp_B函數,永遠只能得到返回值2


經過調試分析,由于exp_forapp_B在調用malloc時候,使用的bootloader內的malloc,此時由于跳轉到app后ram空間已經重新劃分了,因此malloc直接失敗,返回NULL。
因此,嘗試使用將app中的malloc函數傳到bootloader中,給exp_forapp_B使用
int exp_forapp_B(void)
{
int k = 2;
unsigned char *p = app_malloc(100);
if(p)
{
k = 5
free(p);
p = NULL;
}
return k;
}
此時,發現p竟然分配到0x00開頭的地址,而不是0x20000000以后的地址。


經過了,在QQ的學習更肯定我的想法是沒有錯的。接著通過調試代碼,發現,Bootloader中原來存在一個全局變量未被重新映射,而在調用的時候會使用到該變量.進而,導致到動態分配內存出現奇怪地址的問題。


總結,原來的設想是正確的,bootloader的動態內存分配函數malloc失效之后,可以使用app的動態內存分配函數,解決導出函數因內存失效而無法使用函數的問題。

特別要注意,bootloader中的全局變量問題重新映射問題,否則會出現異常。


關鍵字:導出函數  APP調用  malloc  分配內存 引用地址: 導出函數給APP調用出現malloc無法分配內存的問題

上一篇:IAR STM8S及STM32整合
下一篇:串口通信的幀同步問題

推薦閱讀

今年上半年市場需求冷淡,面板需求低迷,智能手機面板供給整體處于供過于求的狀態,群智咨詢 (Sigmaintell) 預計,第 3 季全球智能手機面板總需求約近 5.3 億片,季增 31.4%,主受惠蘋果新品積極備貨帶動,面板需求開始走強,預計面板供需比進一步收窄,同時受到 DDIC(驅動芯片) 缺貨影響,面板價格開始走向平穩或部分規格存在價格上漲的壓力。群...
據行業內人士爆料,華為今年將推出55英寸和65英寸兩個型號的電視產品,并已與TCL集團旗下華星光電就65吋電視面板供應達成合作,華星t6工廠開始備貨生產,預計可在三季度供貨,訂單數量有待進一步消息確認。 國家質量認證中心信息顯示,目前已有兩款華為液晶電視產品已于 5 月 29 日獲得認證, 其認證型號為OSCA-550/Osca-550A, 申請人為華為技術有...
考慮分布式電源不確定性與相關性的配電網狀態估計 李靜1,李幸芝2,韓蓓2,李國杰2,王志磊1 (1. 國網山東省電力公司濟南供電公司;2. 上海交通大學電力傳輸與功率變換控制教育部重點實驗室) 文章導讀 可再生能源發電技術的發展以及在電網中日益普及的分布式電源(DG)給電力系統帶來了更多不確定性,使電力系統狀態估計量測數據不足的問題...
近日,由談思實驗室Taas Labs主辦的AutoAI 2021第四屆無人駕駛及智能駕艙中國峰會在上海召開。來自全球范圍內的整車廠商、一二級供應商、電子電器供應商、自動駕駛汽車開發商、車載軟件和網關、汽車以太網方案商、半導體設計公司等眾多領域的400多位行業人士一起就全球自動駕駛、智能座艙、汽車以太網技術市場現狀及未來發展趨勢、技術難點和挑戰進行了...

史海拾趣

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 循化| 图木舒克市| 聂拉木县| 嵊州市| 左权县| 福建省| 延寿县| 萨迦县| 栾川县| 博野县| 高平市| 绥滨县| 新巴尔虎右旗| 昌吉市| 巧家县| 拉萨市| 石楼县| 宁津县| 巴林左旗| 诸城市| 定州市| 禹州市| 双江| 高碑店市| 衡南县| 阿合奇县| 富宁县| 苏州市| 鲁甸县| 阜新| 龙井市| 泸西县| 察隅县| 长阳| 同德县| 黄龙县| 邢台市| 北票市| 株洲县| 肇庆市| 西平县|