arm day3 汇编LED / C语言LED

软中断svc+中断号

Svc<c> # <imm24>

Svc #7

硬中断

IMX6ULL:

GPIO分为5组:GPIO1、GPIO2、GPIO3、GPIO4、GPIO5

3个模块

1.引脚复用功能+引脚电气属性(IOMUXC 32)

(引脚复用功能:任何引脚可以配置成不同引脚)

IOMUXC_SW_MUX_CTL_PAD:引脚复用功能 _GPIO_IO03

IOMUXC_SW_PAD_CTL_PAD:电气属性 _GPIO_IO03

2.GPIO模块(GPIO 28)

GPIO1_GDIR:设置GPIO1组某个引脚方向(输入0/输出1)

GPIO1_DR:向GPIO组某个引脚写低电平0/高电平1

GPIOx_PSR(只读):读取GPIOx组某个引脚状态

DPIOx_ICR1:设置GPIOx组某个引脚中断触发方式(低电平、高电平、上升沿、下降沿)

GPIOx_IMR:设置GPIOx族某个引脚中断屏蔽/允许

GPIOx_ISR:查询GPIOx族某个引脚是否产生中断

GPIOx_SDGE_SEL:设置中断触发方式为双边沿触发

3.配制时钟(CCM 18)

CCM_CCGR0-CCM_CCGR6:0xFFFFFFFF 打开所有外设时钟门

编译流程

  • arm-linux-gnueabihf-gcc -g -c led.s -o led.o
  • arm-linux-gnueabihf-ld -Ttext 0x87800000 led.o -oled.elf
  • arm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.bin
  • arm-linux-gnueabihf-objdump -D led.elf > led.dis

GUN工具链常用工具说明

Gcc 编译器,C 源码编译生成目标文件.o

Id 链接器,合并多个.o,地址重定位,生成elf可执行文件

Object 目标文件格式转换器,嵌入式常用elf转bin

Objdump 目标文件分析器/反汇编器,查看程序段与符号信息

volatile关键字

变量前加volatile关键字:表示编译器对改变量的任何操作不会被优化

指针前加volatile关键字:表示通过该指针访问的内存空间中的内容不会被优化

相关推荐
zhangzhangkeji2 小时前
stm32 参考文档的目录结构 - 3:STM32F10xxx参考手册(中文).pdf,700多页
stm32·arm
Awh-3 小时前
ARM 裸机开发 day02 学习笔记
linux·arm开发·arm
朝发如雪4 小时前
快速掌握单片机基础(5)(ARM基本概念)
单片机·arm
SKH.20 小时前
ARM汇编
嵌入式硬件·arm
祖力551 天前
ARM汇编LED实验
汇编·arm·imx6ull
xx~t2 天前
嵌入式学习——ARM1
linux·arm开发·嵌入式硬件·arm
xx~t2 天前
嵌入式——ARM1(详细篇)
linux·arm开发·嵌入式硬件·arm
神威难绷泪2 天前
arm day2 汇编
arm
H_oRIZoN_2 天前
Linux入门DAY43 ARM 架构基础、寄存器、大小端、异常向量、交叉编译
linux·arm·linux应用编程