[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 评论
avatar

取消