- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 c语言回调函数
1.函数指针和回调函数你不会每天都使用函数指针,但是,它们确有用武之地,两个最常见的用途是把函数指针作为参数传递给另一个函数以及用于转换表(jump table)。 【警告】简单声明一个函数指针并不意味着它马上就可以使用。和其它指针一样,对函数指针执行间接访问之前必须把它初始化为指向某个函数。下面的代码段说明了一种初始化函数指针的方法。 int f(int);
2012-04-25 10:51:09
676
原创 网络子系统的实现
网络子系统的实现【本文导读】本篇从内核启动到识别网卡过程,再到驱动程序的具体实现。本篇属于综合性的文章,涉及到内核模块的很多实现细节。从uboot传参到内核启动,子系统的实现,具体驱动程序的实现等,为上层协议栈打下坚实基础。【keywords】参数,netdevice writed by huangjl 2012.3.19 1. 系统(
2012-04-10 10:33:34
1181
转载 嵌入式牛人心得
学习有捷径吗?俺认为是有的,正确的道路就是捷径。 就好象是爬山,如果有导游图,那就能找到一条最正确的路线;如果没有导游图,自己瞎琢磨,东问西问,也未必能找到最佳的路线。 有时候回首前尘,会谓叹,要是当时我这样做就好了;这也说明了人生会有一个最优解。 嵌入式系统的学习也是一样,作为电子专业或者其它专业的学生来说,想要把嵌入式系统的学习搞好,走一条成功的人生道路,那应该怎
2012-04-09 11:08:54
5192
原创 i2c体系结构篇(dev与core层交互)
[本文导读]:I2C总线作为系统总线,广泛用于e2prom,rtc等设备接口中。本文以mpc8309为架构,linux-2.26.34源码为例分析I2C总线的实现过程。 1. I2c-dev.c驱动的结构如上图所示,I2c-dev.c是实现I2c通用的slave端的通用驱动架构。i2cdev_fops是实现client的文件操作结构.下面首先看一下i2c_driver结构如下:st
2012-03-15 19:47:31
2998
原创 i2c体系结构篇(适配器与core层交互)
基于mpc体系架构的I2C体系结构(适配器与core层交互)[本文导读]:I2C总线作为系统总线,广泛用于e2prom,rtc等设备接口中。本文以mpc8309为架构,linux-2.26.34源码为例分析I2C总线的实现过程 1. I2C硬件时序I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,它由串行数据线SDA和串行时钟
2012-03-08 20:52:11
2236
转载 利用udev、sys动态创建linux设备结点
在Linux 2.6内核中,devfs被认为是过时的方法,并最终被抛弃,udev取代了它。Devfs的一个很重要的特点就是可以动态创建设备结点。那我们现在如何通过udev和sys文件系统动态创建设备结点呢?下面通过一个实例,说明udev、sys动态创建设备结点的方法。注意代码中红色的部分是为了实现动态创建设备结点添加的。#include #include #include #i
2012-03-08 16:49:47
487
原创 关于嵌入式开发的职业规划的一些感想
其实自己以前没有做笔记的习惯,更别说谈写blog.在一些面试过程常常被问到一些细节而经常卡壳,这些自己都做过,只是当时想不起来。这段时间以来,坚持写文档帮助自己理清思路,本着韩峰局长写日记的精神来写blog.前段时间心态很不好,总在纠结一些永远没有结果的事情。现在是该清醒的时候了. 我是C派系列的开发人员,以前是做windows系列程序开发的.自学过windows程序设计,C++
2012-02-24 17:53:24
1808
原创 基于MPC8309的uboot启动过程
一般的开发者是不会涉及到uboot开发或者移植工作的,因为这个真的很有挑战性,要想从网上下载的uboot完全地去做移植工作,一般的这个工作是由板子供应商来完成,然后再做适合研发某种产品的修改。我花了两天的时间才把uboot的执行过程整理出来,uboot启动过程难以用言语来描述清楚,因为汇编是如此晦涩,还有有太多的编译宏把人弄得头昏眼花 1.uboot启动第一阶段 2.u
2012-02-24 16:36:30
1856
原创 Mpc8309上电复位过程
本文导读:讲述了MPC8309体系结构的重启过程,为BootLoader移植提供了基础Keywords:mpc8309,重启,Flash1.重启导致的硬件信号 首先,从硬件设备的角度来看,上电重启会有三种输入输出信号1.1 PORESETPORESET信号表示上电重启主要初始化各种设备的各种属性的重启流。 1.2 HRESETHRESET表示硬件重
2012-02-22 15:59:19
3598
原创 中断处理
本文导读:中断处理是驱动程序开发中的重点,本文结合内核源码分析了中断上部分和下部分的实现机制Keywords:软中断, tasklet,工作队列 by huangjl中断处理程序是在内核空间执行的例程,而它所运行的环境称为中断上下文,是内核管理硬件的驱动程序的组成部分。应当明确
2012-02-16 13:59:37
1330
原创 内存分配和管理
1. 分配内存的底层函数1.1 页:/*********************include/linux/mm_type.h**************************/struct page {unsigned long flags; atomic_t _count; /* Usage count, see below. */
2012-02-16 13:58:19
602
原创 内核中的并发处理机制
内核中处理并发最常用的就是信号量与自旋锁。 1.信号量:信号量在设计上借助了等待队列,即当申请信号量的进程得不到信号量时候,就会被推进这个队列,让它睡眠。从而让出CPU去执行其他的代码,这在中断上下文中是绝对不允许的,只能在进程上下文中使用。当这个信号量被释放时候,这个任务可能被唤醒,从而继续执行。因此如果任务占有锁的时间比较长的话,适合使用信号量。因为它比自旋锁忙等好得多。所花地开销就是进出
2012-02-16 13:53:38
753
原创 USB子系统源码分析
本文导读:本文主要分析USB子系统的内核源代码(V2.6.34)实现.主要实现三个目标:1.充分理解设备模型以及相关的结构:bus, driver, device. 2.类似与其他子系统,本子系统是怎么在内核中执行。3设备驱动程序的编写,从而帮助理解驱动开发中的各种语法细节 Keywords: usb子系统,设备模型,驱动开发 writed by
2012-02-16 13:29:04
2548
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人