硬件平台 :JZ2440

实现功能:将led闪烁代码从2440的2k sram中拷贝到sdram

start.s      -->   上电初始化,拷贝代码

sdram.c   -->   led代码

start.s 源码:

.equ MENRI_BASE, 0x48000000
.equ SDRAM_BASE, 0x30000000 .text
.global _start
_start:
bl close_watchdog
bl sdram_set
bl copy_sram_to_sdram
ldr pc,=on_sdram
on_sdram:
ldr sp,=0x34000000
bl main
loop1:
b loop1 close_watchdog:
ldr r0,=0x53000000
mov r1,#0x0
str r1,[r0]
mov pc,lr copy_sram_to_sdram:
ldr r0,=SDRAM_BASE
mov r1,#0x0
mov r3,#*
l:
ldr r4,[r1], #
str r4,[r0],#
cmp r1, r3
bne l mov pc,lr sdram_set:
mov r1,#MENRI_BASE
adrl r2,mem_reg_set
add r3,r1,#
m:
ldr r4,[r2],#
str r4,[r1],#
cmp r1,r3
bne m mov pc,lr .align
mem_reg_set:
.long 0x22011110
.long 0x00000700
.long 0x00000700
.long 0x00000700
.long 0x00000700
.long 0x00000700
.long 0x00000700
.long 0x00018005
.long 0x00018005
.long 0x008c07a3
.long 0x000000b1
.long 0x00000030
.long 0x00000030

sdram.c 源码:

#define GPFCON (*(unsigned long *)0x56000050)
#define GPFDAT (*(unsigned long *)0x56000054)
#define LED1_ON (1<<8)
#define LED2_ON (1<<10)
#define LED3_ON (1<<12) void delay(unsigned long num)
{
while(--num);
} int main(void)
{
GPFCON=LED1_ON|LED2_ON|LED3_ON;
while()
{
GPFDAT=(<<);
delay();
GPFDAT=(<<);
delay();
GPFDAT=(<<);
delay();
} return ;
}

编译的Makefile:

sdram.bin:start.s sdram.c
arm-linux-gcc -o start.o -c start.s
arm-linux-gcc -o sdram.o -c sdram.c
arm-linux-ld -Ttext 0x3000000 -o sdram_elf start.o sdram.o
arm-linux-objcopy -O binary -S sdram_elf sdram.bin
arm-linux-objdump -D -m arm sdram_elf > sdram.dis
clean:
rm *.o *.dis *.bin sdram_elf

    

最新文章

  1. STM32F407第一步之点亮LED
  2. Sublime Text 2 安装emmet插件和常用快捷键
  3. 《Thinking In Java第四版》拾遗
  4. Ferry Loading||
  5. MongoDB的安装与配置
  6. Java客户端API
  7. 使用VS调试DUMP文件
  8. 移动设备输入Touch类及相关API
  9. from opencv image to PIL image and reverse
  10. 图像的视差匹配(Stereo Matching)
  11. Java知多少(97)绘图模式概述
  12. 模拟主库创建数据文件,dg备库空间不足时问题处理
  13. YII2常用知识点总结
  14. l2-22(重排链表)
  15. setuid、setgid、sticky的权限简单用法
  16. 跟我学Android NDK开发(一)
  17. 使用maven开发MR
  18. Inteiilj IDEA 团队代码格式规范
  19. bzoj-4870-组合dp+矩阵幂
  20. HTML5获取地理位置信息并在Google Maps上显示

热门文章

  1. VS2012+openCV 2.4.8进行编译:VS2012 64位 使用OPENCV应用程序不能正常启动 (0xc000007b)怎么处理?
  2. WebRTC 配置环境
  3. JAVA基础知识点总结(全集)
  4. ZMQ通信模式
  5. Tensorflow读写TFRecords文件
  6. ThinkingInJava 学习 之 0000003 控制执行流程
  7. MapReduce处理HBase出错:XXX.jar is not a valid DFS filename
  8. mvc4安装、新建、模版简介
  9. ASP.NET MVC与ASP.NET Web Form简单区别
  10. 怎么给button设置背景颜色?【Android】