在ubuntu下开发ARM裸机程序--S3C6410—LED
时间:11-19
来源:互联网
点击:
很多人都是在ads或者rvds或keil中开发ARM裸机程序,使用此类的开发工具虽然简单但是却不能使开发者很好的掌握更多程序原理,要想更好的掌握更多程序细节,感觉还是最好使用arm-linux-进行开发。
转载请注明出处,谢谢,张同浩:http://blog.csdn.net/muge0913/article/details/15016959
邮箱:muge0913@sina.com
下面是一个简单的点亮led灯的程序,在tiny6410上运行。其中set_peri_port函数是必须要添加的,这样才能访问到s3c6410的外设空间。
@@ File:led_on.S@ 功能:LED点灯程序,点亮LED1@ .equ WATCHDOGCON, 0x7e004000.equ LEDCON, 0x7f008800.equ LEDDAT, 0X7f008808.text.global _start_start: bl setup_peri_portbl disable_watch_dogbl setup_spbl display_ledMAIN_LOOP:b MAIN_LOOPdisable_watch_dog:@往WATCHDOG寄存器写0即可ldr r0,=WATCHDOGCONmov r1,#0x0str r1,[r0]mov pc,lrsetup_sp:@目前堆栈大小不能超过8kldr sp,=1024*8mov pc,lrsetup_peri_port:ldr r0,=0x70000013 @base addres:0x70000000,size:256MBmcr p15,0,r0,c15,c2,4mov pc,lrdisplay_led:ldr r0,=LEDCON @ R0设为LEDCON,即GPKCON0寄存器。此寄存器@ 用于选择端口K各引脚的功能:@ 是输出、是输入、还是其他mov r1,#0x110000 str r1,[r0] @ 设置GPK4,5为输出口ldr r0,=LEDDAT @ R0设为GPKDAT寄存器。此寄存器@ 用于读/写端口B各引脚的数据mov r1,#0x00000000 @ 此值为0x000000,低电平点亮ledstr r1,[r0] @ GPK4,5输出0,LED4,5点亮mov pc,lr
Makefile文件如下:
led_on.bin : led_on.sarm-linux-gcc -g -O0 -c -o led_on.o led_on.sarm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elfarm-linux-objcopy -O binary -S led_on_elf led_on.binclean:rm -f led_on.bin led_on_elf *.o
ubuntuARM裸机程序S3C6410LE 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)