博客专栏  >  综合   >  S3C2440之旅

S3C2440之旅

以JZ2440为模版,由浅入深涉及怎样看原理图、从单片机升华到ARM系统、 u-boot源码深度分析、内核启动流程浅析、手把手制作根文件系统、简单字符设备驱动、 Linux驱动深度开发、嵌入式系统移植、Linux项目实战。

关注
6 已关注
43篇博文
  • Linux驱动-LCD驱动

    一、框架分析:我们先来分析一下核心层的代码fbmem.c:① 入口函数fbmem_init:fbmem_init(void) { create_proc_read_entry("fb"...

    2017-09-28 19:03
    233
  • Linux驱动-platform总线设备驱动

    一、简介:      platform总线是一种虚拟的总线,相应的设备则为platform_device,而驱动则platform_driver。Linux 2.6的设备驱动模型中,把I2C、RTC、...

    2017-09-25 11:18
    314
  • Linux驱动-输入子系统框架

    部分内容参考Linux学习之路,表示感谢. 输入子系统一般将该类驱动划分为3部分,事件处理层为纯软件的东西,设备层涉及底层硬件,它们通过核心层建立联系,对外提供open write等接口。一、核心层...

    2017-09-07 20:42
    488
  • 字符设备驱动-定时器

    当我们用阻塞的方式来驱动按键时: 按下按键由于机械按键的波动性,会导致中断处理函数发生多次。 我们可以采用定时器来解决此bug: Makefile: KERN_DIR = /work/syste...

    2017-09-06 10:54
    243
  • 字符设备驱动-同步互斥阻塞

    我们想来达到一个目的:同一时刻,只能有一个应用程序打开/dev/buttons 一般的,我们想达到目的会想到下面这种方法:static int canopen = 1; static int sixt...

    2017-09-04 22:52
    170
  • 字符设备驱动-异步通知

    我们前面的三种按键操作中,都需要通过应用程序不断地主动通过read()来读驱动程序或者通过poll机制利用返回的信息做出决定。 我们想要当按下按键时利用驱动程序来通知应用程序则需要引入异步通知 ...

    2017-09-04 15:25
    159
  • 字符设备驱动-poll机制

    先来看三种按键驱动方式: 1、查询方法:一直在查询,不断去查询是否有事件发生,整个过程都是占用CPU资源,非常消耗CPU资源。2、中断方式:当有事件发生时,就去跳转到相应事件去处理,CPU占用时间少。...

    2017-09-03 21:24
    116
  • 字符设备驱动-中断方式操控按键

    Linux中断处理体系结构框架总结:我们从内核启动第二阶段可知,进行了中断处理体系结构的初始化. 框架总结以外部中断EIN4~EINT23为例。 初始化中断处理体系结构init_IRQ(arch...

    2017-08-31 22:40
    218
  • 字符设备驱动-Linux内核异常处理体系结构

    Linux异常处理体系结构 以中断这种异常来举例分析: 当我们在裸机操作中断时候:① 构建异常向量表② cpu发生中断,跳到异常向量入口执行③ 跳转到某函数③-a 保存被中断的现场③-b 执行中断...

    2017-08-30 15:27
    157
  • 字符设备驱动-轮询方式操控按键

    一般驱动都分为两个部分:一:写出框架二:硬件操作框架搭建:①头文件的拷贝#include #include #include #include #include #inc...

    2017-08-29 18:45
    176
  • 字符设备驱动-LED驱动

    写一个LED点灯驱动:①框架(在Linux字符设备驱动开发基础已经搭建好)②完善:硬件的操作a.看原理图-确定引脚 b.看2440数据手册 c.写代码 写代码注意:裸机代码用的是物理地址PA,...

    2017-08-23 23:18
    175
  • Linux字符设备驱动开发基础

    Linux驱动:封装对底层硬件的操作,向上层应用提供操作接口 一. 概念介绍一般用户在应用程序里调用的 open, read, write 函数是 c 库的函数, 这些函数会触发 swi val异常,...

    2017-08-13 22:45
    198
  • 搭建自己的Linux根文件系统

    部分内容参考的博客CrazyCatJack:http://www.cnblogs.com/CrazyCatJack/p/6184564.html 整体框架:构建最小根文件系统:1) 创建设备conso...

    2017-08-07 10:57
    444
  • Linux根文件系统分析

    部分内容参考的博客CrazyCatJack:http://www.cnblogs.com/CrazyCatJack/p/6184564.html整体框架: 1)在Linux kernel的源代码中,...

    2017-08-05 10:19
    294
  • 内核启动

    我们从u-boot启动内核可知道,uboot通过这条命令theKernel (0, bd->bi_arch_number, bd->bi_boot_params);来启动内核。 那么我们可以内核启...

    2017-08-03 20:37
    184
  • 内核启动流程分析

    内核启动流程分析之编译体验Linux源码编译过程方法: 解压缩下载好的linux-2.6内核源代码 ; 给内核打补丁 ; 打补丁命令:patch -p n <补丁文件 -p 是指忽略前n...

    2017-08-02 10:22
    222
  • (六) u-boot 启动内核解析

    一、我们从上一节命令解析可以知道,u-boot启动启动Linux内核有两种方法:第一种u-boot等待无空格按下自启内核: s = getenv ("bootcmd"); if (bootde...

    2017-07-30 15:58
    427
  • (六) 自己写简单的u-boot

    前言:想想 uboot 的代码量,我们说自己写一个 bootloader 是不是口出狂言了?然而并没有,bootloader 的唯一目的只有一个,那便是启动内核。内核就是一大段可执行程序,我们只要跳转...

    2017-07-27 16:03
    391
  • (四) u-boot 启动分析_第二阶段

    在第一阶段,清 BSS 段之后,CPU 跳转到 sdram 里的 start_armboot() 函数,本文,分析 uboot 启动流程的第二阶段。 start_armboot函数在lib_a...

    2017-07-29 17:40
    269
  • (三) u-boot 启动分析_第一阶段

    本文重点在于分析 uboot 启动流程以及 uboot 自身的细节,比如栈空间的划分、如何设置 tag 、如何添加一个自定义命令等。但是不涉及基本的硬件驱动的分析,比如内存初始化、时钟初始化、mmu ...

    2017-07-29 14:08
    396

img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部