• uTenux——重新整理底层驱动库


    重新整理底层驱动库

    1、 整理chip.h

    在chip.h文件中的07----13的宏定义设置位如下,这样我们就不用在工程配中定义sam3s4c这个宏了,为我们以后通用少了一件麻烦事。

    //#if defined sam3s4

    //#elif defined sam3s2

    //#elif defined sam3s1

    //#else

    //    #warning Library does not support the specified chip, specifying sam3s4.

        #define sam3s4

    //#endif

    2、 看着common文件夹有些乱,而且像USB什么的文件夹我们也不常用到,所以我就只留下了最常用的三个startup、chip、peripheral。这三个文件夹在我们应用时,必然会用到,所以,我就把这三个单独拿出来作为我的common文件夹,供我以后使用,另外把common中的那些零杂文件放入startup文件加下,因为那些文件是关于底层驱动配置的,具体如下:

    ├─Library

    │  ├─cmsis

    │  ├─include

    │  ├─source

    │  └─startup

    └─Peripherals

        ├─include

    └─source

    这些都是个人习惯,如果您了解了文件的组织结构,可以按照自己的习惯进行组织。我只是习惯性的沿用了之前STM32开发时的组织习惯而已。

    3、 建立工程模板。建立工程模板的目的是位了每次建立新的工程时简化每次都要做的一些繁琐的操作。我建立的工程模板的文件组织结构如下:

    ├─Configure

    ├─Interrupt

    ├─List

    ├─Note

    ├─Obj

    └─Source

        ├─APP

    └─HAL

    其中Configure文件夹中包含了board.h和chip.h文件,我们可以配置两个文件中包含的外设模块的包含与否。Interrupt文件夹中有Interrupt.c和Interrupt.h两个文件,这两个文件负载处理器的中断函数编写。List文件用于存放编译后的连接文件,OBJ文件夹用于存放编译后的目标文件,这连个文件夹可以用批处理清理,我自己写了一个批处理文件,并将其转化位了可执行文件,位于Note文件夹下,用于可以用它清除编译后产生的目标文件(注意Clear.exe只能存放于该文件夹下),另外Note文件加下还有Note.txt文件,用于存放记录工程的编写记录介绍及版本等。最后便是source文件夹了,这个文件夹内由main.c文件和APP与HAL文件夹,其中APP用于存放用于编写的硬件驱动程序*.c,HAL文件夹用于存放对应的*.h文件,由于函数、变量的声明。

    4、 经过以上整理后,便可以建立工程了,接下来介绍工程建立后的相关工程设置。

    首先器件的选择应该不成问题,接着是目标文件输出文件夹的选取,这里就选Obj文件夹,List文件输出文件夹选择List文件夹。接着是C编译器设置,我们要设置编译器的包含路径,在include项中添加目录:..\_CommonLibrary; .. \_CommonPeripherals; .. Configure;  .. Interrupt;  .. SourceHAL; OK,要包含的路径就这些了,他们分别是处理器驱动库,开发板外设驱动库,配置文件,中断服务函数,用户外设驱动函数。还有就是Link配置,因为我们要用到板载的NandFlash,所以我们要从新定义Flash,我们要取消默认user memory layout from Target dialog选项,并在下面scatter File中选择..\_CommonLibrarystartupflash.sct。最后就是仿真器的配置了,由于不同仿真其的配置略有不同,本人用的是J-Link,这里就不做详细的解说了。

    这一节就至此结束了。谢谢您的阅读,希望您能够留下宝贵的意见建议,谢谢!

  • 相关阅读:
    MySQL 5.6 Windows 安装 配置 试用
    abp Could not cast or convert from System.Int64 to System.Collections 对不起,在处理你的请求期间,产生了一个服务器内部错误!
    using Volo.Abp.Application.Services;中 没有IAsyncCrudAppService 方法
    ComponentModel.DataAnnotations.Schema 找不到
    VS2017--无法启动程序dotnet.exe ........web 502
    Dev XtraReport 正在打印弹出框如何隐藏 批量打印 静默打印
    重绘 提示 DockedBarControl Dev控件
    GetHtml
    C# 相似对象赋值 通过table 互转 另辟蹊径 垃圾简单代码
    数据库 无表 获取时间列表
  • 原文地址:https://www.cnblogs.com/BruceLone/p/3348738.html
Copyright © 2020-2023  润新知