RioTboard裸机汇编程序电灯

数据手册下载

下载地址

查看数据手册记录所需寄存器地址和页码

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.binu-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文件写入即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值