数据手册下载
查看数据手册记录所需寄存器地址和页码
d46对应GPIO口:Chapter 29: General Purpose Input/Output (GPIO);1517页
CCGR0-6寄存器:Chapter 18: Clock Controller Module (CCM);869-878页
设置d46口复用为GPIO:Chapter 37: IOMUX Controller (IOMUXC)-IOMUXC_SW_MUX_CTL_PAD_EIM_DATA28;2127页
配置d46GPIO口:GPIO:Chapter 37: IOMUX Controller (IOMUXC)-IOMUXC_SW_PAD_CTL_PAD_EIM_DATA28;2468页
配置GPIO输入输出模式:Chapter 29: General Purpose Input/Output (GPIO)-GPIO Memory Map/Register Definition;1529页
写GPIO:Chapter 29: General Purpose Input/Output (GPIO)-GPIO Memory Map/Register Definition;1529页
** 汇编代码**
.global _start
_start:
/*
点亮对应电路图D46led灯
*/
ldr r0,=0x020C4068 @寄存器CCGR0
ldr r1,=0xffffffff @全部使能
str r1,[r0]
ldr r0, =0x020C406C @寄存器CCGR1
str r1,[r0]
ldr r0, =0X020C4070 @寄存器CCGR2
str r1,[r0]
ldr r0, =0X020C4074 @寄存器CCGR3
str r1,[r0]
ldr r0, =0X020C4078 @寄存器CCGR4
str r1,[r0]
ldr r0, =0X020C407C @寄存器CCGR5
str r1,[r0]
ldr r0, =0X020C4080 @寄存器CCGR6
str r1,[r0]
ldr r0, =0x020E0174 @设置IO复用
ldr r1, =0X5
str r1,[r0]
ldr r0, =0x020E0544 @配置IO口速率等
ldr r1, =0X10B0
str r1,[r0]
ldr r0, =0X020A4004 @设置IO口输入输出
ldr r1, =0Xffffffff
str r1,[r0]
ldr r0, =0x020A4000 @写GPIO
ldr r1, =0
str r1,[r0]
loop:
b loop
**
编译.s文件
**
编译.s文件生成.o文件:arm-fsl-linux-gnueabi--gcc -g -c led.s -o led.o
链接文件生成.elf文件:arm-fsl-linux-gnueabi-ld -Ttext 0X87800000 led.o -o led.elf
.elf文件格式转换为.bin文件:arm-fsl-linux-gnueabi-objcopy -O binary -S -g led.elf led.bin
最终生成:led.bin
**
添加启动头文件
**
目的:得到官方头配置文件nitrogen6s1g.cfg.cfgtmp
下载u-boot代码:git clone https://github.com/Freescale/u-boot-fslc.git -b 2016.03+fslc
创建脚本:touch release.sh
#!/bin/bash
make V=1 > make.log0 ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi- distclean
make V=1 > make.log1 ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi- riotboard_defconfig
make V=1 > make.log2 ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi- -j12
执行脚本:source release.sh
打开make.log2搜索make.log2
复制这一行命令:./tools/mkimage -n board/boundary/nitrogen6x/nitrogen6s1g.cfg.cfgtmp -T imximage -e 0x17800000 -d u-boot.bin u-boot.imx
替换 u-boot.bin
和u-boot.imx
终端执行命令:./tools/mkimage -n board/boundary/nitrogen6x/nitrogen6s1g.cfg.cfgtmp -T imximage -e 0x17800000 -d led.bin led.imx
生成 led.imx
烧录 led.imx到SD卡
下载win32磁盘映像工具
打开选择自己的sd卡和imx文件写入即可