OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2677|回复: 1

内存实验例程现象求解答,可能原理没有搞清楚

[复制链接]

40

主题

137

帖子

0

精华

高级会员

Rank: 4

积分
579
金钱
579
注册时间
2019-8-4
在线时间
187 小时
发表于 2019-11-25 09:19:58 | 显示全部楼层 |阅读模式
4金钱
我把内存管理实验例程下载到开发板,按键分配的第一次内存是0X20009AA0;

我在mallo.c文件开头定义了一些全局变量,结果按键分配的第一次内存是0X20009AC0;
u32 g,h,j,k,l,ll,lll,llll,a,b;

但是我再加变量,结果按键分配的第一次内存是0X20009AC0;
u32 g,h,j,k,l,ll,lll,llll,a,b;
u32 d;

我是这么想的,全局变量占用内存,那mallco_dev.membase[memx]在内存的地址会偏移,所以按键返回分配的地址
return (void*)((u32)mallco_dev.membase[memx]+offset);
会随着我加的全局变量数增多而增加,



void *mymalloc(u8 memx,u32 size)  
{  
    u32 offset;   
        offset=my_mem_malloc(memx,size);                                
    if(offset==0XFFFFFFFF)return NULL;  
    else return (void*)((u32)mallco_dev.membase[memx]+offset);  


最佳答案

查看完整内容[请看2#楼]

这是编译器自动分配的,你可以通过看.map文件来查看具体的分配结果
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2019-11-25 09:19:59 | 显示全部楼层
这是编译器自动分配的,你可以通过看.map文件来查看具体的分配结果
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 06:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表