[imx6ull]第一个裸机程序
几个月没碰,都快忘了,换个板子玩玩吧
2021/11/23
熟悉新板子,还是从点亮led开始吧,至于开发环境什么之类的就不多1313了,看这个芯片的手册,不知道这个程序能不能成功,过几天才能看到最近很火的板子真容,又到了读纯英文芯片手册的时候了,同时最近也要记录一期freeRTOS的理论知识,半个月内更新完毕吧,凡是博客里面的内容,大多都是给自己看的,有些只是可能并不连贯
代码
1/**************************************************************
2文件名 : led.c
3作者 : 艾恩凝
4版本 : V1.0
5描述 : 汇编点灯
6博客 : https://aeneag.xyz
7**************************************************************/
8.global _start
9
10_start:
11 /* 1、使能所有时钟 */
12 ldr r1, =0x0c000000
13
14 ldr r0, =0X020C406C /* CCGR1 */
15 str r1, [r0]
16
17 /* 2、设置(IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03) 手册1571*/
18 ldr r0, =0X020E0068
19 ldr r1, =0X5
20 str r1,[r0]
21
22 /* 3、配置GPIO1_IO03的IO属性
23 *bit 16:0 HYS关闭
24 *bit [15:14]: 00 默认下拉
25 *bit [13]: 0 kepper功能
26 *bit [12]: 1 pull/keeper使能
27 *bit [11]: 0 关闭开路输出
28 *bit [7:6]: 10 速度100Mhz
29 *bit [5:3]: 110 R0/6驱动能力
30 *bit [0]: 0 低转换率
31 */
32 ldr r0, =0X020E02F4 /*寄存器SW_PAD_GPIO1_IO03_BASE */
33 ldr r1, =0X10B0
34 str r1,[r0]
35
36 /* 4、设置GPIO1_IO03为输出 */
37 ldr r0, =0X0209C004 /*寄存器GPIO1_GDIR */
38 ldr r1, =0X0000008
39 str r1,[r0]
40
41 /* 5、打开LED0
42 * 设置GPIO1_IO03输出低电平
43 */
44 ldr r0, =0X0209C000 /*寄存器GPIO1_DR */
45 ldr r1, =0
46 str r1,[r0]
47
48/*
49 * 描述: loop死循环
50 */
51loop:
52 b loop
Makefile
1led.bin:led.s
2 arm-linux-gcc -g -c led.s -o led.o
3 arm-linux-ld -Ttext 0X87800000 led.o -o led.elf
4 arm-linux-objcopy -O binary -S -g led.elf led.bin
5 arm-linux-objdump -D led.elf > led.dis
6clean:
7 rm -rf *.o led.bin led.elf led.dis
评论
0 评论