start.S文件中:
//#define CONFIG_SYS_ICACHE_OFF
.global _start
_start:
// 关闭看门狗
ldr r0, =0xE2700000 //在s5pv210手册中0xE270_0000是看门狗寄存器的地址
mov r1, #0
str r1, [r0]
// 打开icache可提高运行速度
#ifdef CONFIG_SYS_ICACHE_OFF
// clear bit 12 (I) I-cache
bic r0, r0, #0x00001000 //bic:逻辑与非
//在s3c2410英文手册中搜icache
//找到REGISTER 0(r0),其中就有说明
//或者直接搜REGISTER 0
#else
// set bit 12 (I) I-cache
orr r0, r0, #0x00001000 //orr:逻辑或,开icache
#endif
mcr p15, 0, r0, c1, c0, 0
// 设置栈,以便调用c函数
ldr sp, =0xD0037D80 //原因:IROM里的固定代码设置的sp就等于0xD003_7D80,这是
//遵从三星的旨意,也可以设置不覆盖我代码内存也行
// 调用c函数,LED闪烁
bl led_blink
halt:
b halt
led.c中:
#define GPJ2CON (*(volatile unsigned long *) 0xE0200280)
#define GPJ2DAT (*(volatile unsigned long *) 0xE0200284)
// 延时函数
void delay(unsigned long count)
{
volatile unsigned long i = count;
while (i--)
;
}
void led_blink() //LED 闪烁
{
GPJ2CON = 0x00001111; // 配置引脚
while(1) // 闪烁
{
GPJ2DAT = 0; // LED on
delay(0x1000000);
GPJ2DAT = 0xf; // LED off
delay(0x1000000);
}
}
上一篇:arm裸机驱动错误总结
下一篇:S5PV210裸机驱动开发之led关开门狗(加汇编注示)
推荐阅读最新更新时间:2026-02-09 19:04
- DC2066A,具有数字 PSM 的 LTM4677EY 模块稳压器演示板,4.5V = VIN = 16V,Vout0 = Vout1 = 0.5V 至 1.8V @ 18A
- 使用 Analog Devices 的 LT2078ACS8 的参考设计
- 基于TCPP01-M12的USB Type-C电力输送水槽扩展板 ,适配STM32 Nucleo
- LTC1701,全陶瓷电容器转换器在 500mA 时提供 2.5V
- 带有 BFP420F 射频晶体管的低成本 950 - 2150 MHz 直接广播卫星放大器从 5V 电源汲取 27mA 电流
- 使用 ROHM Semiconductor 的 BU4936 的参考设计
- NCP380LMU15AGEVB,笔记本USB开关评估板
- 使用 Analog Devices 的 AD8033AKS 的参考设计
- EVAL-AD7634CBZ,用于 AD7634、16 位、670 Ksps PulSAR 模数转换器的评估板
- 使用 NXP Semiconductors 的 TDA8932B 的参考设计

Windows驱动开发技术详解
非常经典的关于LLC的杨波博士论文
XC6406PP60DL






京公网安备 11010802033920号