嵌入式硬件第六弹——ARM(3)

(续接上篇)

3. GPIO外设

IOMUXC:引脚复用功能 + 引脚电气属性



Linux编译:

  • 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

Makefile编译:

  • 目标:目标文件 led.bin
  • 依赖:依赖源文件 led.S
  • 规则:源文件到生成目标文件中间的规则

4. 时钟与定时器

定时器 (EPIT GPT):是一个通过对已知频率的时钟信号进行计数,来实现定时、延时或事件计数功能的硬件模块或软件机制。
时钟(clock):在电子系统中是一个产生稳定、周期性振荡信号的电路或组件。这个信号像节拍器或心跳一样,为数字电路中的各种操作提供同步时序基准。
实时时钟(RTC real time clock): 是微处理器中的一个功能模块,用于在系统主电源关闭的情况下,继续提供精确的日历和时间信息。

4.1 时钟

4.1.1 硬件概念

时钟源:晶体整荡器

工作做原理:利用石英晶体的压电效应和固有谐振频率,来产生高度稳定的电信号。

PLL(phase locked loop)锁相环电路: 倍频

Prescale 分频器: 分频

PFD(phase fractional Prescale)相位分数分频器: 输出频率可升可降

4.1.2 代码编写

4.1.2.1 kernal

CCM_ANALOG_PLL_ARMn

  1. 先选择osc_clk,让step_clk为24MHz
  2. 再将PLL1的输出改成step_clk,让ARM暂时工作在24MHz;
  3. 配置PLL为1056,注意设置倍频因子之前先把PLL之后的二分频设置好,避免ARM内核故障!!
  4. 最后改回pll1_main_clk
4.1.2.2 528 PLL

CCM_ANALOG_PFD_528n

4.1.2.3 480 PLL

CCM_ANALOG_PFD_480n

4.1.2.4 AHB_CLK_ROOT(132M)

CBCMR[PRE_PERIPH_CLK_SEL]

CBCDR[PERIPH_CLK_SEL]

CBCDR[AHB_PODF]

4.1.2.5 IPG_CLK_ROOT(66M)

CBCDR[IPG_PODF]

4.1.2.6 PERCLK_CLK_ROOT(66M)

CSCMR1[PERCLK_CLK_SEL]

CSCMR1[PERCLK_PODF]

4.2 定时器

4.2.1 EPIT

Enhanced Periodic Interrupt Timer:增强型周期中断定时器

1s中断,中断服务函数中反转led灯

频率计算时1000*1000=1MHz

存储计算时1024*1024=1MByte

4.2.2 GPT

General Purpose Timer:通用目的定时器

输入捕获和比较输出

利用自由运行模式编写精准延时函数

相关推荐
23124_802 小时前
【无标题】
单片机·嵌入式硬件
ytttr8732 小时前
STM32 读写 SD 卡源码(SPI 模式 + FATFS 文件系统)
stm32·单片机·嵌入式硬件
Quinn272 小时前
正点原子 STM32MP257 修复异核 FreeRTOS+OpenAMP 例程里 SysTick 延时异常的问题
stm32·嵌入式硬件·正点原子·arm linux
Deitymoon2 小时前
STM32——OLED显示图片
stm32·单片机·嵌入式硬件
深圳英康仕2 小时前
龙芯2K3000嵌入式工控机的技术拆解:算力、接口与国产系统适配
嵌入式硬件·工控机·工业计算机·国产工控机·龙芯2k3000
山木嵌入式2 小时前
STM32 UART串口通信协议与3种底层驱动实现(寄存器/标准库/HAL库)
stm32·单片机·串口·uart
Heartache boy2 小时前
野火STM32_HAL库版课程笔记-I2C介绍
笔记·stm32·单片机
Deitymoon2 小时前
STM32——OLED显示汉字
stm32·单片机·嵌入式硬件
狮驼岭的小钻风3 小时前
单片机启动流程与 .s 文件详解
单片机·嵌入式硬件
iCxhust3 小时前
8086/8088单板机VSCode集中环境开发编译(第二版整理)
ide·vscode·嵌入式硬件·编辑器·嵌入式·微机原理·8086最小系统