一、首先以STM32为例来看SDK包是个啥?,如图所示。

IMX6U嵌入式linux开发之SDK包的深入了解_字符串

总结就是:

 一个结构体宏是该外设

                    一个基地址就是该外设寄存器首地址

                                 一个结构体是该外设所有寄存器【从小到大】

              一个横岗加大于号是对其的调用



补充一个C语言语法知识:typedef  我把她看成   “别名的意思”。别名的名称便是“}”后面的字符串,该字符串可以声明其他变量,且声明的其他变量具有其结构体性质。提高了代码的效率!!!


IMX6U嵌入式linux开发之SDK包的深入了解_寄存器_02




二、现在以IMX6ULL为例来看SDK包怎么写?


    ①确定对象:IOMUX_SW_MUX_CTL_PAD_XX 在参考手册找对应的所有寄存器:只要是带前缀:IOMUX_SW_MUX_CTL_PAD_都要写入结构体,这样后期使用的时候,只需要调用。


IMX6U嵌入式linux开发之SDK包的深入了解_字符串_03


②明确的基地址:发现第一个复用寄存器的地址为基地址+14h

IMX6U嵌入式linux开发之SDK包的深入了解_字符串_04

故宏定义为:

IMX6U嵌入式linux开发之SDK包的深入了解_复用_05


③定义结构体指针:  #define 能够简单代表外设的名称      ((结构体的别名*)基地址)

IMX6U嵌入式linux开发之SDK包的深入了解_寄存器_06




三、最后以IMX6ULL为例来想SDK包怎么用?


思考下,如何快速调用BOOT_MODE0?

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linux