HuangHongLun 发表于 2020-8-25 19:42

KF32-c语言使用-特殊功能寄存器的操作

4.1 简介
本章主要介绍 C 语言和汇编语言中如何访问特殊功能寄存器。
4.2 特殊功能寄存器的操作
特定于处理器的头文件是一些包含了在 C 或汇编语言中使用的特殊功能寄存器(Special Function Register, SFR)的外部声明的文件。依照约定,每个 SFR 都使用数据手册中的相同名称进行命名,如 OSC_CTL1 代表振荡器控制寄存器 1。定义结构以实现寄存器的位声明,如_HFCLKCAL。同时约定前面添加前缀“_”。举例,地址为 0x40000004 的特殊功能寄存器 OSC_CTL1,在 C 头文件的声明如下:





HuangHongLun 发表于 2020-8-25 19:43

KF32 芯片特殊功能寄存器为芯片固定地址,且芯片支持 32 位地址空间访 问,故 SFR 仅需在头文件中将其地址声明。如上所述,KF32 芯片的每一个 SFR 都被定义为一个结构(联合体),其中 reg 为 32 位数据访问,bits 可访问一组 位,bit 可访问每一个位。 特殊功能寄存器OSC_CTL1在汇编头文件的声明如下:

HuangHongLun 发表于 2020-8-25 19:44

在应用程序中使用 SFR 时,需要执行 2 个步骤。

HuangHongLun 发表于 2020-8-25 19:44

zeshoufx 发表于 2020-8-27 09:20

谢谢分享【KF32-c语言使用】

哈根达斯uz 发表于 2020-10-30 23:53

c语言的

heisexingqisi 发表于 2021-1-14 22:06

终于看到位段的应用了。

詹求实 发表于 2021-1-15 12:04

特定于处理器的头文件是一些包含了在 C 或汇编语言中使用的特殊功能寄存器(Special Function Register, SFR)的外部声明的文件。
页: [1]
查看完整版本: KF32-c语言使用-特殊功能寄存器的操作