S5pv210默认进入SVC模式,这个模式的CPU可能已经默认初始化了SP,因为代码中,即使不初始化SP,也可以正常使用C语言。
#define GPJ0CON 0xE0200240
#define GPJ0DATA 0xE0200244
#define GPD0CON 0xE02000A0
#define GPD0DATA 0xE02000A4
#define SVCSP 0xD0037D80
.global _start
_start:
ldr r0,=0x11111111
ldr r1,=GPJ0CON
str r0,[r1]
ldr r0,=0x11111111
ldr r1,=GPD0CON
str r0,[r1]
ldr sp,=SVCSP
flash:
bl led_blink
b flash
#define GPJ0DATA 0xE0200244
#define GPD0DATA 0xE02000A4
void mydelay();
void led_blink()
{
int * gpj0 = (int *)GPJ0DATA;
int * gpd0 = (int *)GPD0DATA;
*gpj0 = ~(1 << 3) ||~ (1 << 4) || ~(1 << 5);
*gpd0 = 0;
mydelay();
*gpj0 = 0xffffffff;
*gpd0 = 0xffffffff;
mydelay();
}
void mydelay()
{
int i = 1000000;
while(i--);
}