社区
C++ 语言
帖子详情
51内存分配问题!
lqshui0501
2009-03-22 12:05:43
在学习的TCP/IP的51协议栈的时候有下面定义的变量,不明白什么意思。
请高手指点!
static BYTE DT_XDATA TCPIPBuf[TCPIP_BUF_SIZE];
static struct SMemHead DT_XDATA * DT_XDATA MemHeadEnd;
static struct SMemHead DT_XDATA * DT_XDATA MemHeadStart;
...全文
181
5
打赏
收藏
51内存分配问题!
在学习的TCP/IP的51协议栈的时候有下面定义的变量,不明白什么意思。 请高手指点! static BYTE DT_XDATA TCPIPBuf[TCPIP_BUF_SIZE]; static struct SMemHead DT_XDATA * DT_XDATA MemHeadEnd; static struct SMemHead DT_XDATA * DT_XDATA MemHeadStart;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qqwx_1986
2009-03-22
打赏
举报
回复
#define DT_XDATA ?
mfantonidas
2009-03-22
打赏
举报
回复
struct SMemHead型变量的指针MemHeadEnd是static
:)
kingbozhang
2009-03-22
打赏
举报
回复
看来你是用Keil C在进行8051的开发了。
static BYTE DT_XDATA TCPIPBuf[TCPIP_BUF_SIZE];
static struct SMemHead DT_XDATA * DT_XDATA MemHeadEnd;
static struct SMemHead DT_XDATA * DT_XDATA MemHeadStart;
跟你讲一个复杂的吧,就以static struct SMemHead DT_XDATA * DT_XDATA MemHeadEnd为例。
Keil C将8051的内存区域分成了几个部分:
data ----片内直接寻址ram
idata ----片内间接寻址ram
xdata ----片外ram
code ----片外code
因为8051的内存区域分的比较复杂,导致Keil C在8051下的指针也比较复杂。
指针分为2类:
1. general ptr: 这种指针可以指向每个内存区域,如: int* ptr1--ptr1可以指向任何内存区域
2. memory-specific ptr:这种指针只能指向特定的内存区域,如: xdata int* ptr2--ptr2只能指向xdata区
指针本身也是变量,也占用内存。因此必须指明将指针放在哪个内存区域。
xdata int* data ptr3:ptr3是一个指向xdata区的int型变量的指针,ptr3本身占用的内存在data区。
因此,总结:
static struct SMemHead DT_XDATA * DT_XDATA MemHeadEnd
struct SMemHead DT_XDATA * DT_XDATA MemHeadEnd:MemHeadEnd是一个指向xdata区的SMemHead结构类型的指针,MemHeadEnd本身也放在xdata区。
static跟51没有关系。作业:指针是static,还是struct SMemHead型变量是static?
pengzhixi
2009-03-22
打赏
举报
回复
xdata的定义呢
lqshui0501
2009-03-22
打赏
举报
回复
哦,忘了告诉了
DT_XDATA就是xdata
51
芯片
内存分配
详解(data,xdata,bit,code)和address space overflow
问题
如果读写要了解
51
单片机的详细内容,建议读
51
芯片手册。本文结合笔者使用
51
单片机的情况,谈一下
51
单片机的存储和
内存分配
。以及当空间超出时的,代码优化
问题
。
谈谈Keil 中C
51
的
内存分配
与优化
C
51
ram分配
Area
51
内存分配
模式识别:常见模式与优化
内存管理是游戏开发中的关键环节,直接影响游戏的性能和稳定性。Area
51
项目作为一个复杂的游戏引擎,其
内存分配
模式多样,优化空间巨大。本文将深入分析Area
51
中常见的
内存分配
模式,并提供实用的优化建议,帮助开发者提升游戏性能。 ## 常见
内存分配
模式 ### 1. 单例模式
内存分配
在Area
51
中,许多管理器类采用单例模式,如InputMgr、Render等。这种模式通过静态成员变量分配内...
Keil C
51
内存分配
与优化
原文地址:Keil C
51
内存分配
与优化 (转)作者:
51
大海Keil C
51
内存分配
与优化分类: C/C++ 单片机 2012-01-06 19:10 272人阅读 评论(0) 收藏 举报 C
51
的
内存分配
不同于一般的PC,内存空间有限,采用覆盖和共享技术。在Keil编译器中,经过编译后,会形成一个M
51
文件,在其内部可以详细的看到内存的分配情况。C
51
内存常见的两个误区:(1) 变...
Keil C
51
中字符串常量
内存分配
优化技巧
在嵌入式系统开发中,内存管理是核心挑战之一,特别是针对80
51
架构的哈佛结构内存模型。理解指针变量与常量数据的
内存分配
原理,对提升程序稳定性和执行效率至关重要。通过分析Keil C
51
编译器的内存分区机制(包括DATA、XDATA、CODE等区域),开发者可以优化字符串常量等关键数据的存储位置。本文以far指针和HCONST区域为例,展示了如何通过#pragma指令和双重const声明实现精确内存控制,解决分页技术下的跨页访问
问题
。这些方法在代码分页(code banking)和变量分页(variable
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章