4412裸板开发 (1点灯)

1,用汇编点亮led灯,并且写makefile文件 烧写实验

 

 实现:点亮led1 (完整程序已附)

 说明:

  sd_fuse  下为4412的引导文件,不可或缺,不需修改(BL1,BL2)

  start.S    为点亮LED1 的程序

  Makefile  将start.S 编译为二进制文件

 

烧写过程:

首先我们需要了解4412的启动过程,可以看一下本人写的arm启动方式(不是很高大上,但是能看懂)啦啦啦啦

我们需要用到BL1 、BL2 引导文件。都将会在下面打包给出

  • 利用SD卡,首先用SD_FLASH对SD卡进行分割。
  • 然后挂载进vm
  • root用户下命令:fdisk -l  查看磁盘情况,如图,我16G的卡被分割两个

 

  • 进入sd_fuse 命令 ./fast_fuse.sh /dev/sdb      (注意一定要烧至分割出来的那个块下面)

 

初学tiny4412,欢迎各位同仁交流;

附件:点此下载

转载于:https://www.cnblogs.com/chu-yi/p/10009284.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 fs4412 开发点灯程序的代码: ```c #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <sys/mman.h> #define GPIO_BASE_ADDR 0x11000000 #define GPIO_SIZE 0x1000 #define LED1_OFFSET 0x880 #define LED2_OFFSET 0x890 #define LED3_OFFSET 0x8A0 #define LED4_OFFSET 0x8B0 #define LED_ON 1 #define LED_OFF 0 int main(int argc, char **argv) { int fd; void *gpio_base; volatile unsigned int *gpio_led1; volatile unsigned int *gpio_led2; volatile unsigned int *gpio_led3; volatile unsigned int *gpio_led4; // 打开 /dev/mem 设备 if ((fd = open("/dev/mem", O_RDWR | O_SYNC)) < 0) { perror("open"); exit(1); } // 映射 GPIO 地址 gpio_base = mmap(NULL, GPIO_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, GPIO_BASE_ADDR); if (gpio_base == MAP_FAILED) { perror("mmap"); exit(1); } // 获取 LED 的地址 gpio_led1 = (volatile unsigned int *)(gpio_base + LED1_OFFSET); gpio_led2 = (volatile unsigned int *)(gpio_base + LED2_OFFSET); gpio_led3 = (volatile unsigned int *)(gpio_base + LED3_OFFSET); gpio_led4 = (volatile unsigned int *)(gpio_base + LED4_OFFSET); // 设置 LED 为输出模式 *gpio_led1 &= ~(0x7 << 4); *gpio_led2 &= ~(0x7 << 4); *gpio_led3 &= ~(0x7 << 4); *gpio_led4 &= ~(0x7 << 4); *gpio_led1 |= (0x1 << 4); *gpio_led2 |= (0x1 << 4); *gpio_led3 |= (0x1 << 4); *gpio_led4 |= (0x1 << 4); // 循环点亮 LED while (1) { *gpio_led1 = LED_ON; *gpio_led2 = LED_OFF; *gpio_led3 = LED_OFF; *gpio_led4 = LED_OFF; usleep(500000); *gpio_led1 = LED_OFF; *gpio_led2 = LED_ON; *gpio_led3 = LED_OFF; *gpio_led4 = LED_OFF; usleep(500000); *gpio_led1 = LED_OFF; *gpio_led2 = LED_OFF; *gpio_led3 = LED_ON; *gpio_led4 = LED_OFF; usleep(500000); *gpio_led1 = LED_OFF; *gpio_led2 = LED_OFF; *gpio_led3 = LED_OFF; *gpio_led4 = LED_ON; usleep(500000); } // 解除映射 munmap(gpio_base, GPIO_SIZE); // 关闭 /dev/mem 设备 close(fd); return 0; } ``` 这个程序可以让 fs4412 开发上的四个 LED 灯交替闪烁。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值