【ARM】LED实验——eclipse

通过分析电路和核心板引脚图,了解到LED的点亮由GPX2_7控制,该引脚属于GPIO。根据芯片手册配置相应寄存器地址,用汇编编写程序实现LED控制。同时提供了C语言实现的流水灯程序,并展示了相应的Makefile配置。
摘要由CSDN通过智能技术生成

实验步骤

  1. 在设备原理图中找到LED的电路:

    LED电路

  2. 分析电路,可知当CHG_COK为高电平时,LED点亮;当CHG_COK为低电平时,LED熄灭。

  3. 在核心电路原理图中找到CHG_COK引脚:

    核心板原理图

  4. 分析核心板的引脚图,可以知道,CHG_COK由GPX2_7控制,这是一组GPIO引脚中的一个。

  5. 查询芯片手册中GPX2这一节,可以得知控制GPX2组中GPIO引脚的寄存器地址以及功能定义,如图:

    GPX2寄存器地址

  6. 编写汇编程序控制寄存器,实现硬件控制

    .global _start
_start:      @汇编入口

    @ .global _start    将_start声明称一个全局的符号  使其全局可用

    @ .equ 相当于C中的宏定义
    @ .equ DATA, 0xFF
    @ mov r1, #DATA

    @ mov r1, #1
    @ 在当前地址申请一个字的空间并将其初始化
    @ .word 0x12345678
    @ mov r1, #1

    @ mov r1, #1
    @ 在当前地址申请一个字节的空间并将其初始化
    @ .byte 0x12
    @ .byte 0x12
    @ .byte 0x12
    @ .byte 0x12
    @ mov r1, #1

    @ mov r1, #1
    @ .space 100, 0xFF
    @ mov r1, #1
    @在当前的地址申请多个字节的空间  并将其初始化

    @ 条件编译
    @ .if 0
    @   mov r1, #1
    @ .endif

    @/******************C语言和汇编语言的混合编程*******************/
    @ C语言和汇编语言的混合编程的原则就是在哪种语言下符合哪种语言的语法
    @ 1.汇编语言跳转到C语言
        @ 汇编语言 -> 将C函数看做汇编标号
        @   mov r1, #1
        @   mov r2, #2
        @   b main
        @ C语言
        @   int main()
        @   {
   
        @
        @   }
    @ 2.C语言跳转到汇编语言
        @ C语言
        @ extern void FUNC(void);
        @ int main()
        @ {
   
        @   int a;
        @   a = 1;
        @   FUNC();
        @   a = 2;
        @ }
        @ 汇编语言
        @ FUNC:
        @   mov r1, #1
        @   mov pc, lr
    @ 3.C语言内联汇编语言
        @ C语言
        @ int main()
        @ {
   
        @   int a;
        @   a = 1;
        @   asm
        @   (
        @       "mov r1, #1\n"
        @       "mov r2, #2\n"
        @   );
        @   a = 2;
        @ }

    @/******************ATPCS协议*******************/
        @ 1.栈的使用:使用满减栈
        @ 2.寄存器的使用
        @ a.如果函数有参数的时候  使用r0-r3传参  多于4个参数的时候使用数据栈
        @ b.如果有返回值  使用r0传递  如果返回值是64位  使用r0、r1共同传递
        @ c.栈指针使用r13

    @/******************uboot下载程序*******************/
        @ 将开发板薄码开关拨成0110
        @ 安装好CH340驱动后在 “我的电脑”-“管理”-“设备管理器”-“端口”-“COMx”
        @ 打开超级终端  波特率:115200 流控制:无
        @ 打开开发板进行设置:
        @   1、set bootcmd
        @   2、save
        @ 程序下载
        @   loadb 40008000  将二进制程序下载到40008000地址(kermit协议)
        @   go 40008000     程序跳转到40008000执行

    @/******************接口实验的基本原理*******************/
        @ 一个处理器能够操作的地址空间是固定的,是由处理器的地址总线宽度决定的
        @ CPU想要操作CPU之外的数据就必须将这些数据放到其地址空间
        @ CPU不能直接控制硬件,所以将硬件的控制映射到CPU的地址空间的一段地址即特殊功能寄存器
        @
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值