RTEMS-BBB(七):LED点亮
2015-08-05 16:19
260 查看
首先明确硬件地址
AM335X 共4组 GPIO 模块,每组 32 pins USR0~USR3 对应 GPIO1_21~GPIO1_24 GPIO_OE1: 第一组 GPIO 输出允许(每一位对应一只GPIO引脚,0-输出,1-输入) GPIO_CLR1: GPIO 引脚清"0" (写 "1" 清0,写"0"无效) GPIO_SET1: GPIO 引脚置"1" (写 "1" 置1,写"0"无效) GPIO_OUT1: 输出控制 #define GPIO1 0x4804C000 #define GPIO_OE1 (GPIO1+0x134) #define GPIO_OUT1 (GPIO1+0x13C) #define GPIO_CLR1 (GPIO1+0x190) #define GPIO_SET1 (GPIO1+0x194) 将 GPIO1_21~GPIO1_24 设为输出: *(int *)GPIO_OE1 &= ~(0xf<<21); 4个LED亮: *(int *)GPIO_CLR1 |= (0xf<<21); 或者 *(int *)GPIO_OUT1 &= ~(0xf<<21); 4个LED灭: *(int *)GPIO_SET1 |= (0xf<<21); 或者 *(int *)GPIO_OUT1 |= (0xf<<21); 根据此编写test.c #include <stdlib.h> #include <stdio.h> #include <bsp.h> #define GPIO1 0x4804C000 #define GPIO_OE1 (GPIO1+0x134) #define GPIO_OUT1 (GPIO1+0x13C) #define GPIO_CLR1 (GPIO1+0x190) #define GPIO_SET1 (GPIO1+0x194) rtems_task Init(rtems_task_argument ignored) { printf("LED TASK\n"); int i=0; while (1) { for(i=1;i<4;i++) { if(i!=4) { *(int *)GPIO_OE1 = ~(1<<(21+i)); rtems_task_wake_after( 100 ); *(int *)GPIO_OUT1 = ~(1<<(21+i)); rtems_task_wake_after( 50 ); *(int *)GPIO_OUT1 = 0xf<<21; } else i=0; } } /* configuration information */ #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER #define CONFIGURE_RTEMS_INIT_TASKS_TABLE #define CONFIGURE_MAXIMUM_TASKS 10 #define CONFIGURE_INIT #include <rtems/confdefs.h> 初始化一个TASK,rtems_task_wake_after控制亮灭时间 下面将这个led加入到rki的shell中 将test.c转为led_cmd.c 初始化一个led_command任务,然后设置一下return 0,控制任务运行的时间 在local_shell_cmds.c中增加 int led_command( int argc, char *argv[]); Add command下添加 rtems_shell_add_cmd("led","misc","LED working",led_command); 以后的应用也可以这样开发,再生成rki.elf和bone_rki.elf-sdcard.img后烧写到SD卡启动后 shell中输入led,启动程序
相关文章推荐
- 获取硬件信息
- 第14章 集合类
- JS绘制生成花瓣效果的方法
- C# ref和out参数的使用
- Mavan配置
- 微信公众平台开发整理
- jRTPlib支持多网卡,支持TCP
- 多线程之售票安全版
- telnet退出命令
- IOS XMPP的实践
- Problem C: P1053
- 设计模式 适配器模式
- HANA激活对象报错
- Creating ADF BC View Object Instances On The Fly!!!!!!
- omci批量升级
- php mysql 事务 锁 小计
- code first使用t4模板
- Android 自定义侧滑面板
- lbypmall系统备份恢复
- ios iphone6 Plus 的适配问题