51单片机通过STARTUP.A51文件将变量初始化为0

本文介绍了如何通过51单片机的启动文件STARTUP.A51来初始化RAM中的变量为0,从而节省代码空间。主要步骤包括修改IDATALENGTH和XDATALENGTH以适应单片机的RAM配置,并利用启动代码中的初始化段完成清零操作。
摘要由CSDN通过智能技术生成

前言

项目背景

前一段时间做过一个项目,相对于单片机内部资源(ram,rom)来说,项目功能较复杂,内部资源主要消耗在两路的串口功能,主要原因在于通信协议很复杂。整个工程代码量较大,16k的flash和1k的ram几乎被榨干了,由于后续还要增加新功能,所以必须要想办法减少代码量,代码重新架构的话,工作量太大,不太现实,于是我把目标放在了变量初始化的函数上,大部分变量都是初始化为0,于是我便想不如直接通过启动代码把它给初始化为0,这样可以省掉一部分空间。

单片机选型简述

分类 详情
型号 SC92F8463B
内核 51内核
主要资源 1k ram + 16k rom

如何通过启动代码初始化变量

要知道的事儿

首先,单片机中的所有变量,不论是局部变量还是全局变量,都是在ram空间中的,51内核的单片机的启动文件基本都是startup.a51,这个文件中,其实是有对ram空间进行初始化的语句的,但是由于各个单片机平台不同,ram空间基本也都不一样,
所以在具体操作时,需要自己去修改一下。

第一步——修改ram空间长度

; <o> IDATALEN: IDATA memory size <0x0-0x100>
;     <i> Note: The absolute start-address of IDATA memory is always 
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值