uTenux——软件底层驱动组织结构介绍

时间:2022-04-10 01:22:12

经过第一节对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——软件底层驱动组织结构介绍的更多相关文章

  1. 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-13 emWin底层驱动接口介绍

    视频简介:该视频介绍emWin底层驱动接口. 源视频包下载地址:链接:http://pan.baidu.com/s/1nvPpC2d 密码:cbb7 银杏科技优酷视频发布区:http://i.youk ...

  2. uTenux——重新整理底层驱动库

    重新整理底层驱动库 1. 整理chip.h 在chip.h文件中的07----13的宏定义设置位如下,这样我们就不用在工程配中定义sam3s4c这个宏了,为我们以后通用少了一件麻烦事. //#if d ...

  3. Android驱动入门-Led控制+app+ndk库+底层驱动

    硬件平台: FriendlyARM Tiny4412 Cortex-A9 操作系统: UBUNTU 14.04 LTS 时间:2016-09-20  21:56:48 本次实验使用的是 安卓APP + ...

  4. linux驱动简单介绍

     linux驱动简单介绍 驱动基本介绍 驱动.顾名思义就是“驱使硬件设备行动”.设备驱动与底层硬件之间打交道,按照硬件设备的具体操作方式来读写设备寄存器,最终完成一系列操作. 设备 驱动充当了应用程序 ...

  5. 【RL-TCPnet网络教程】第6章 RL-TCPnet底层驱动说明

    第6章        RL-TCPnet底层驱动说明 本章节为大家讲解RL-TCPnet的底层驱动,主要是STM32自带MAC的驱动实现和PHY的驱动实现. 6.1  初学者重要提示 6.2  KEI ...

  6. 软件公司的两种管理方式 总体来说,这个世界上存在两种不同的软件公司的组织结构。我把他们叫做 Widget Factory(小商品工厂) 和 Film Crews(电影工作组

    软件公司的两种管理方式 一个简单的回答应该是——“因为在我们的社会里,我们总是会认为薪水和会和职位的层次绑在一起”.但是,这个答案同时也折射出一个事实——我们的薪资是基于我们的所理解的价值,但这并没有 ...

  7. [转]Linux芯片级移植与底层驱动(基于3.7.4内核)

      1.   SoC Linux底层驱动的组成和现状 为了让Linux在一个全新的ARM SoC上运行,需要提供大量的底层支撑,如定时器节拍.中断控制器.SMP启动.CPU hotplug以及底层的G ...

  8. Linux系统调用怎么和内核或底层驱动交互的

    学习Linux系统下驱动程序开发已有大半年时间,心中一直有个疑惑:那就是诸如open.write.read等系统调用是怎么和内核或底层驱动建立起联系的呢?今天将自己的一些粗略的理解总结如下.      ...

  9. 软件发布版本区别介绍-Alpha,Beta,RC,Release

    Alpha: Alpha是内部测试版,一般不向外部发布,会有很多Bug.除非你也是测试人员,否则不建议使用. 是希腊字母的第一位,表示最初级的版本 alpha就是α,beta就是β alpha版就是比 ...

随机推荐

  1. Struts2 源码分析——项目分析

    项目知识点分析 从上一章中我们知道了接下来我们要去了解源码的项目(struts2-showcase).而这一章将讲述我三年后在次接触struts2-showcase项目是一个什么样子的情况.我有一个工 ...

  2. mysql gb2312与lanti1

    1.如果数据库编码为lanti1,页面编码utf-8和gb2312均可,并且不用set names,设置就会乱码: 2.如果数据库编码为utf8,页面编码utf-8和gb2312均可,一定要设置好se ...

  3. MVC中session创建并获取问题

    有两个ActionResult分别为A和B,如下 public ActionResult A() { Session["test"]="123"; return ...

  4. python 中的map 详解

    python中的map函数应用于每一个可迭代的项,返回的是一个结果list.如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理.map()函数接收两个参数,一个是函 ...

  5. 在XAF应用程序使用现有的数据库?

    https://documentation.devexpress.com/#Xaf/CustomDocument3061

  6. Android项目中gen文件下R文件无法生成的解决的方法

    帮一个网友解决R文件无法生成的问题,搜集了些材料特整理例如以下,刚開始学习的人參考他人代码时极易出现此种问题,一般都是xml文件出错,无法被正确解析. gen文件夹无法更新,或者gen文件夹下的R.J ...

  7. 在线预览pdf、xlsx、docx、ppt等文档

    使用微软提供的Office Online平台只需要一个网址即可在线查看Xls,doc,PPT等文档 http://view.officeapps.live.com/op/view.aspx?src=要 ...

  8. java里程碑之泛型--泛型方法

    前面我已经介绍过了,我们可以在定义类和接口的时候使用类型形参,在该类的方法定义中,成员变量定义中,这些类型形参都可以被当成普通类型来使用.但是如果我们在定义类和接口的时候没有使用类型形参,但是在定义方 ...

  9. 总结随笔(Beta)

    听说 -- beta冲刺总结 beta冲刺成员名单 姓名 学号 负责方向 个人主页 周龙荣 031402543 前端页面.跳转 http://www.cnblogs.com/ZHOULR/ 李家鹏 0 ...

  10. Linux(Redhat)安装Redis

    Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.(百度百科 0.0) 下载:http://www.redis. ...