21.硬件 - 简介

一、引脚接法:

    1、模块与板子上的寄存器通过引脚相连,不同bit位的芯片引脚接法不同。



二、时序图:

    1、根据时序图的标注搜索芯片手册并配置相应寄存器,寄存器中的参数要参照硬件的相关手册设置。



三、寄存器配置:

    1、根据芯片手册,注意寄存器读写的位数。8位用 (volatile unsigned char *) 类型指针,16位用 (volatile unsigned short *) 类型指针,以此类推。



四、函数移植:

    1、去uboot中查找

    2、去内核源码中查找

    3、去库函数中查找(一般来说编译器自带有很多库)

            ①、输入命令arm-linux-gcc -v,查看当前使用的交叉编译工具链。

            ②、输入命令echo $PATH,在环境变量中找到当前使用的交叉编译工具链所在的路径。

            ③、进入交叉编译工具链所在目录搜索相关函数,例如grep “__floatsisf” * -nR。

            ④、提取出其中的静态库(.a后缀文件),复制文件到代码文件。

            ⑤、修改Makefile,依次尝试加入的每个静态库,直至编译成功。

    注:

            ①、如果更换了编译器,需要自己去编译器目录里找出对应的库,并逐个尝试。

            ②、ARM是精简指令集,对求余和除法操作基本上不支持,需要添加linux内核源码linux/arch/arm/lib/lib1funcs.S实现支持除法、求模操作等操作的库函数。



附:常识

    1、Flash 编程原理都是只能将 1 写为 0,而不能将 0 写为 1。所以在 Flash 编程之前,必须将对应的块擦除,即把所有位写为 1 (块内的所有字节变为 0xff)。

    2、常见缩写:

        VDD:电源电压(单极器件)。        VCC:电源电压(双极器件)。        VSS:地或负极。        VEE:负电压供电。

        GND:接地。

    3、有些中断触发之后不会自动清除,需要手动清除。具体参考芯片手册。

你可能感兴趣的:(21.硬件 - 简介)