c语言 嵌入式开发环境搭建,嵌入式C语言环境的搭建

这段代码解释了C程序如何通过初始化可读写和只读内存区域来确保正确执行。它展示了在启动时设置限制和基地址的重要性,尽管看似与C语言直接执行无关,但这是底层硬件与操作系统交互的基础。缺失这些步骤可能导致程序运行错误。
摘要由CSDN通过智能技术生成

IMPORT |Image$$RO$$Limit| IMPORT |Image$$RW$$Base| IMPORT |Image$$ZI$$Base| IMPORT |Image$$ZI$$Limit|

IMPORT |Image$$RO$$Limit| IMPORT |Image$$RW$$Base| IMPORT |Image$$ZI$$Base| IMPORT |Image$$ZI$$Limit| IMPORT Main ; 声明C程序中的Main()函数 AREA Start,CODE,READONLY ; 声明代码段Start ENTRY ... IMPORT |Image$$RO$$Limit|

IMPORT |Image$$RW$$Base|

IMPORT |Image$$ZI$$Base|

IMPORT |Image$$ZI$$Limit|

IMPORT Main ; 声明C程序中的Main()函数

AREA Start,CODE,READONLY ; 声明代码段Start

ENTRY ; 标识程序入口

CODE32 ; 声明32位ARM指令

Reset LDR SP,=0x40003F00

; 初始化C程序的运行环境

LDR R0,=|Image$$RO$$Limit|

LDR R1,=|Image$$RW$$Base|

LDR R3,=|Image$$ZI$$Base|

CMP R0,R1

BEQ LOOP1 ;

LOOP0 CMP R1,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 ; 跳转到C程序代码Main()函数

END

以上的这段代码只是确定了可读写区域的范围,初始化为零了一些内存,和C语言貌似没什么关系啊,一种语言能否执行是看程序有没有该语言的编译器吧,这段代码也没有编译器什么事吧,为什么少了它就不能执行了 展开 少了这个貌似程序是可以顺利执行完的,为什么要有这段初始化程序??

展开

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值