uTenux——软件底层驱动组织结构介绍
经过第一节对uTenux初步认识和第二节对uTenux\AT91SAM3S4C开发板的硬件结构的介绍,这一节我们将要学习的是uTenux\AT91SAM3S4C的软件底层驱动。
在悠龙公司的官网或者uTenux\AT91SAM3S4C开发套件的光盘中我们都可以找mdk_source这样也该文件夹或压缩包。这个和第一讲中提到了uTenux_V1.5.00r160压缩包将是我们未来这段时间主要学习和完善的内容了。
下面是mdk_source文件夹下的目录内容:
├─01-Nandflash
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─02-SD card
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─03-USART
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─04-usart_rs485
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─05-Uart
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─06-LCD
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─07-SPI_Touchscreen
│ ├─inc
│ │ ├─include
│ │ └─lib
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─08-Led_Controller
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─13-ADC12
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─15-fatfs_nandflash
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─16-cm3_bit_banding
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─17-CRCCU
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─18-dac12-sinewave
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─19-effc_uniqueid
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─20-lowpower
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─21-pmc_clock_switching
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─22-pwm_pdc
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─23-RTC
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─24-RTT
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─25-OS
│ ├─CoOS
│ │ ├─Document
│ │ ├─kernel
│ │ └─portable
│ │ ├─IAR
│ │ └─Keil
│ ├─RTX
│ │ └─RTX_Blinky
│ │ ├─Lst
│ │ └─Obj
│ └─uCosII-2.52_SAM3S_FLAG
│ ├─GPIO
│ ├─MCUTarget
│ ├─project
│ ├─ReadMe
│ ├─uCOS-II
│ │ ├─Ports
│ │ │ └─ARM-Cortex-M3
│ │ │ └─Generic
│ │ │ ├─IAR
│ │ │ └─RealView
│ │ └─Source
│ └─UserApp
├─common
│ ├─chip
│ │ ├─cmsis
│ │ ├─include
│ │ └─source
│ ├─fat
│ ├─LIB
│ ├─memories
│ │ ├─build
│ │ │ └─mdk
│ │ ├─include
│ │ ├─nandflash
│ │ ├─norflash
│ │ ├─sdmmc
│ │ └─spi-flash
│ ├─peripherals
│ │ ├─include
│ │ └─source
│ ├─startup
│ └─usb
│ ├─common
│ │ ├─audio
│ │ ├─cdc
│ │ ├─core
│ │ └─hid
│ ├─device
│ │ ├─audio-speaker
│ │ ├─audio-speakerphone
│ │ ├─ccid
│ │ ├─cdc-serial
│ │ │ └─drv
│ │ ├─composite
│ │ │ └─drv
│ │ ├─core
│ │ ├─hid-keyboard
│ │ ├─hid-mouse
│ │ ├─hid-transfer
│ │ └─massstorage
│ └─include
├─USB_Audio_Headphone
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─Usb_Cdc_Serial
│ ├─driver
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
├─Usb_Hid_Keyboard
│ ├─inc
│ ├─project
│ │ ├─flash
│ │ └─sram
│ ├─ReadMe
│ └─src
└─Usb_Massstorage
├─inc
├─project
│ ├─flash
│ └─sram
├─ReadMe
└─src
看到上面的目录内容是不是已经心里有点慌,底气不足了呀,嘿嘿,别急,其实这个目录下的内容可以分为3个部分,其中我认为最重要的就是common这个文件夹。Common文件夹的作用就如他的名字一样,这里面有各种底层的驱动。其中的common\chip目录下是针对AT91SAM3S4C控制器的底层驱动,这个类似于STM32的底层驱动,这个也就是所谓的Cotex M系列处理其软件设计的好处了。虽然各生产商提供的底层驱动库书写命名不大相同,但是对于应用他们的原理是一样的也就是对于AT91SAM3S4C的Cotex内核驱动和其外围的驱动。另外在common\startup中是AT91SAM3S4C的启动文件,就不多言了。Common\fat文件夹下是文件系统,但是目前是空的,应该是需要我们去完善了。Common\LIB里面是以及编译了的库文件,我们对此不必太关心,如果用KEIL编程也许不会用到。Common\Peripherals目录下是对于uTenux\AT91SAM3S4C开发板的驱动文件,我们以后要好好研究这个文件夹了。Common\memories文件夹下是对开发板上的NAND Flash的底层驱动。
还有一个文件夹就common\USB,这个望文生义,我就不在细说了。Common文件夹下主要就是这些文件了,还有一些零散的文件,这些是在我们用板载的NandFlash时的启动文件,后面应用时会讲解其用法。
在mdk_source中有3部分文件夹,刚才说了最重要的部分---common,接下来说一下第二部分。第二部分是我们对common文件夹下内容的具体应用,就是01-Nandflash-à25-OS这25个文件夹了,这些基本把uTenux\AT91SAM3S4C开发板的功能应用了,不过也就是仅仅简单的调试了下硬件而已,并没有把这款开发板的功能发挥的淋漓精致,所以还需我们努力,去充分的运用这款开发板,实现他的应用价值。
最后一部分就USB部分了,这一部分是针对AT91SAM3S4C处理器自带的USB接口的应用,像HID设备,存储设备等功能的实现。另外还有一个文件Clean_Bin_Files.bat,这个批处理文件使用来清除由KEIL编译后生成的目标文件的。
以上便是对mdk_source文件夹的讲解,至此结束这一节吧。下一节主要讲怎样重新整理common文件夹结构,以方便我们今后的使用,以及怎样添加我们用到的处理器外设驱动和开发板的外设驱动,以保证不用的外设不添加驱动,使得减小我们的编译时间。
OK,这一节结束。谢谢您的阅读,希望您留下宝贵的意见建议,谢谢!
uTenux——软件底层驱动组织结构介绍的更多相关文章
- 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-13 emWin底层驱动接口介绍
视频简介:该视频介绍emWin底层驱动接口. 源视频包下载地址:链接:http://pan.baidu.com/s/1nvPpC2d 密码:cbb7 银杏科技优酷视频发布区:http://i.youk ...
- uTenux——重新整理底层驱动库
重新整理底层驱动库 1. 整理chip.h 在chip.h文件中的07----13的宏定义设置位如下,这样我们就不用在工程配中定义sam3s4c这个宏了,为我们以后通用少了一件麻烦事. //#if d ...
- Android驱动入门-Led控制+app+ndk库+底层驱动
硬件平台: FriendlyARM Tiny4412 Cortex-A9 操作系统: UBUNTU 14.04 LTS 时间:2016-09-20 21:56:48 本次实验使用的是 安卓APP + ...
- linux驱动简单介绍
linux驱动简单介绍 驱动基本介绍 驱动.顾名思义就是“驱使硬件设备行动”.设备驱动与底层硬件之间打交道,按照硬件设备的具体操作方式来读写设备寄存器,最终完成一系列操作. 设备 驱动充当了应用程序 ...
- 【RL-TCPnet网络教程】第6章 RL-TCPnet底层驱动说明
第6章 RL-TCPnet底层驱动说明 本章节为大家讲解RL-TCPnet的底层驱动,主要是STM32自带MAC的驱动实现和PHY的驱动实现. 6.1 初学者重要提示 6.2 KEI ...
- 软件公司的两种管理方式 总体来说,这个世界上存在两种不同的软件公司的组织结构。我把他们叫做 Widget Factory(小商品工厂) 和 Film Crews(电影工作组
软件公司的两种管理方式 一个简单的回答应该是——“因为在我们的社会里,我们总是会认为薪水和会和职位的层次绑在一起”.但是,这个答案同时也折射出一个事实——我们的薪资是基于我们的所理解的价值,但这并没有 ...
- [转]Linux芯片级移植与底层驱动(基于3.7.4内核)
1. SoC Linux底层驱动的组成和现状 为了让Linux在一个全新的ARM SoC上运行,需要提供大量的底层支撑,如定时器节拍.中断控制器.SMP启动.CPU hotplug以及底层的G ...
- Linux系统调用怎么和内核或底层驱动交互的
学习Linux系统下驱动程序开发已有大半年时间,心中一直有个疑惑:那就是诸如open.write.read等系统调用是怎么和内核或底层驱动建立起联系的呢?今天将自己的一些粗略的理解总结如下. ...
- 软件发布版本区别介绍-Alpha,Beta,RC,Release
Alpha: Alpha是内部测试版,一般不向外部发布,会有很多Bug.除非你也是测试人员,否则不建议使用. 是希腊字母的第一位,表示最初级的版本 alpha就是α,beta就是β alpha版就是比 ...
随机推荐
- SQL2008无法连接到.\SQLEXPRESS,用户'sa'登录失败(错误18456)图文解决方法
出现问题 :标题: 连接到服务器 ------------------------------ 无法连接到 .\SQLEXPRESS. ------------------------------ ...
- 夺命雷公狗—angularjs—8—ng-class的简单用法
我们在正常的业务处理中往往会遇到一些逻辑类的问题,比如各行换色,现在angularjs里面也给我们提供了一个小小的的class处理的方式,废话不多说,如下所示: <!doctype html&g ...
- SQL Server session故障排查
--根据作业名 查找session id select a.spid,a.blocked,b.name,substring(replace(a.PROGRAM_NAME,'SQLAgent - TSQ ...
- DB2 表空间和缓冲池
简介 对于刚涉足 DB2 领域的 DBA 或未来的 DBA 而言,新数据库的设计和性能选择可能会很令人困惑.在本文中,我们将讨论 DBA 要做出重要选择的两个方面:表空间和缓冲池.表空间和缓冲池的设计 ...
- SQL SERVER索引
(一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚 ...
- 视频处理控件TVideoGrabber如何重新编码视频
TVideoGrabber中可以对音频.视频剪辑进行重新编码剪辑,多的朋友知道这个功能更点,但是具体操作上还是不是很熟悉,这里总结一下,主要步骤如下: 1.通过指定开始和停止的时间,可以简单的剪辑视频 ...
- Dynamics AX 2012 R2 切换环境后项目导入报错
Reinhard重装了服务器.重装后,导入项目A报错,错误提示如下: A table, Extended Data Type, Base Enum or class called ???? a ...
- Hibernate,JPA注解@PrimaryKeyJoinColumn
一对一(One-to-one),主键关联 用例代码如下: 数据库DDL语句 1,CAT表 create table CAT ( id CHAR) not null, create_time ), up ...
- Docker Centos安装Mysql5.6
之前一篇随笔<Docker Centos安装Openssh> 写的是如何在基础的centos镜像中搭建ssh服务,在此基础上再搭建其他服务.本文继续介绍在centos_ssh基础上搭建my ...
- count(*)、count(val)和count(1)的解释
一.关于count的一些谣言: 1.count(*)比count(val)更慢!项目组必须用count(val),不准用count(*),谁用扣谁钱! 2.count(*)用不到索引,count(va ...