基于ARM处理器的C 语言运行环境的搭建

该文描述了一个基于ADS的实验环境中,代码从只读存储区加载,到数据初始化的过程,包括RO、RW和ZI段的处理。文章通过汇编语言实现了一个简单的加法器函数Add,并在C语言中调用该函数进行循环计算,展示了程序执行和变量操作的基本步骤。

实验环境:ADS

IMPORT |Image$$RO$$Limit|
IMPORT |Image$$RW$$Base|
IMPORT |Image$$ZI$$Base|
IMPORT |Image$$ZI$$Limit| 
IMPORT Main
AREA Start,CODE,READONLY
ENTRY
CODE32
RESET
LDR SP,=0X40003F00
LDR R0,=|Image$$RO$$Limit|
LDR R1,=|Image$$RW$$Base|
LDR R3,=|Image$$ZI$$Base| 
CMP R0,R1
BEQ LOOP1
LOOP0
CMP R0,R3
LDRCC R2,[R0],#4
STRCC R2,[R1],#4
BCC LOOP0
LOOP1
LDR R1,=|Image$$ZI$$Limit|
MOV R2,#0
LOOP2
CMP R3,R1
STRCC R2,[R3],#4 
BCC LOOP2
B Main
END
AREA Addasm,CODE,READONLY
ENTRY
CODE32
EXPORT Add
Add
ADD R0,R0,R1 
MOV PC,LR
END
#define uint8 unsigned char
#define uint32 unsigned int
#define N 100 extern int 
Add(int x,int y); void 
Main(void)
{
uint32 i,sum=0; 
for(i=0;i<N;i++)
{
sum+=Add(sum,i);
}
while(1);
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值