【OK210试用体验】裸机篇 -- 点亮LED增强版 - 在线问答 - 电子技术论坛 - 最好最受欢迎电子论坛!

【OK210试用体验】裸机篇 -- 点亮LED增强版

【OK210试用体验】裸机篇 -- 点亮LED增强版
      
上个帖子讲到了点亮一个LED的程序的编写全过程和烧写体验,完成这些,就算是对这块S5PV210芯片入门了,但是点亮一个LED,显然不能尽兴,我们接着这节奏,继续编写流水灯程序。因为流水灯的程序相对来说还是比较多的,所有应用 C和ASM混合编写,这也是开这个帖子来分享的原因哈。

汇编程序编写

在自己创建一个文件夹下创建一个leds_on.S文件,编写如下代码:
/* leds_on.S */
  
  .global _start
  _start :
      bl main     @jump to main function
  halt :
      b halt
C语言程序编写


在文件中创建 main.c文件并且编写代码:
  1. /* main.c */

  2. #define      GPMP0_4CON *((volatile unsigned int *) 0xE0200340)
  3. #define      GPMP0_4DAT *((volatile unsigned int *) 0xE0200344)

  4. void delay(volatile unsigned int time)
  5. {
  6.       volatile unsigned int cnt = 0xFFFF;
  7.   
  8.       while (time--)
  9.           for (; cnt; cnt--) ;
  10.   }
  11.   
  12.   int main(void)
  13.   {
  14.       int toggle = 0;
  15.       GPMP0_4CON &= ~(0XFFFF << 16);
  16.       GPMP0_4CON |= 0x1111 << 16;
  17.   
  18.       while (1)
  19.       {
  20.           GPMP0_4DAT &= ~(0XF << 4);
  21.   
  22.           if (toggle)
  23.               GPMP0_4DAT |= 1 << 4;
  24.           else
  25.               GPMP0_4DAT |= 1 << 5;

  26.           toggle != toggle;
  27.           delay(0x50000);
  28.       }
  29.   
  30.       return 0;
  31.   }
复制代码


Makefile


在点亮第一个LED的时候我们所用的Makefile,在这个文件的基础上修改一下就可以这个程序上使用
  1. led.bin : led.o leds_on.o
  2.       arm-linux-ld -Ttext 0xD0020010 -o led.elf $^
  3.       arm-linux-objcopy -O binary led.elf $@
  4.       arm-linux-objdump -D led.elf > led.dis
  5.   
  6.   led.o : main.c
  7.       arm-linux-gcc -c [        DISCUZ_CODE_3        ]lt; -o $@
  8.   
  9.   leds_on.o : leds_on.S
  10.       arm-linux-gcc -c [        DISCUZ_CODE_3        ]lt; -o $@
  11.   
  12.   clean :
  13.       rm *.o *.elf *.bin *.dis
复制代码

用make命令实现编译链接,生成对应的  .bin  文件。


实验现象

      将生成的bin和对应的头信息 一并烧入SD卡,然后将SD卡插入开发板上,用SD卡启动,即可观察到LED灯交替闪烁现象。

0个回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

站长推荐上一条 /6 下一条

小黑屋|手机版|Archiver|电子发烧友 ( 湘ICP备2023018690号 )

GMT+8, 2024-12-22 11:31 , Processed in 0.525653 second(s), Total 65, Slave 46 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表