自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(26)
  • 资源 (3)
  • 收藏
  • 关注

原创 uboot分析(1)

硬件平台:NUC972 uboot版本:2013.4 第一阶段:编译nand_spl,引导uboot,宏CONFIG_NAND_SPL打开。//arch/arm/cpu/arm926ejs/start.S.globl _TEXT_BASE_TEXT_BASE: .word CONFIG_SYS_TEXT_BASE//宏CONFIG_SYS_TEXT_BASE 在两个阶段都有

2016-11-03 15:53:59 150

原创 内核之PINCTRL子系统

linux内核版本:3.10 cpu平台:nuc972 相关结构体://include/linux/pinctrl/pinctrl.hstruct pinctrl_desc { const char *name; struct pinctrl_pin_desc const *pins; unsigned int npins; const struct

2016-10-17 16:49:58 95

原创 Linux USB子系统

参考文章: USB底层协议相关数据如下://这里数据成员并没有完全列出struct usb_device{ //usb设备 struct device dev; char devpath[16]; u8 portnum; struct usb_host_endpoint ep0; struct usb

2016-06-02 11:37:19 214

原创 workqueue,tasklet,内核定时器

工作队列tasklet在软件中断上下文运行,所以tasklet的代码是原子的,而工作队列在特殊内核进程上下文运行,可以睡眠内核代码可以请求工作队列函数执行延迟给定的时间间隔。tasklet可以在很短的时间间隔内执行,原子模式执行,工作队列可以更长的延迟,不用原子化#include<linux/workqueue.h>// 工作队列struct workqueue_struct *crea

2016-04-06 17:23:13 208

原创 linux系统移植点点

ARM根文件系统: 1 dns服务器的设置 /etc/resolv.conf文件中添加 nameserver 223.5.5.5 //阿里服务器 nameserver 223.6.6.6 gdbserver 1 下载gdb-6.8 交叉编译gdb,gdbserver –target=需要调试的目标环境 –host=编译后的文件运行的环境 这一项在编译gdb和gdbserver不

2016-03-28 15:48:07 61

原创 文章标题

typedef struct __wait_queue wait_queue_t;typedef void (*wait_queue_func_t)(wait_queue_t * wait,uint mode,int sync,void *key);struct __wait_queue{ unsigned int flag; wait_queue_func_t func;

2016-03-04 18:29:18 151

原创 内核机制之互斥与同步

并发来源: 1 中断 2 处理器的调度 3 多处理器的并发执行 local_irq_enable: 打开本地处理器中断, 对应于 local_irq_save:保存当前处理器状态 local_irq_disable: 关闭本地处理器中断 对应于 local_irq_restore 自旋锁 设置多处理器共享的全局变量锁V,并定义V =1 时为上锁状态,V=0时为解锁状态。当处理

2016-03-03 15:26:51 172

原创 文章标题

随着生活水平的提高,人们对USB设备的使用也越来越多,鉴于Linux在硬件配置上尚不能全部即插即用,因此关于Linux如何配置和使用,成为困扰我们的一大问题。 什么是USB? USB是英文Universal Serial Bus的缩写,意为通用串行总线。USB最初是为了替代许多不同的低速总线(包括并行、串行和键盘连接)而设计的,它以单一类型的总线连接各种不同的类型的设备。USB

2016-03-02 16:23:38 44

转载 linux work queue工作原理

什么是workqueue Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的编程.工作队列(workqueue)是另外一种将工作推后执行的形式.工作队列可以

2016-03-01 15:20:25 178

原创 Linux USB知识积累

Linux内核版本:2.6.28 driver/usb/core/driver.cstruct bus_type usb_bus_type = { .name = "usb", .match = usb_device_match, .uevent = usb_uevent,};usb设备: struct usb_device usb配置:

2016-03-01 10:35:51 60

原创 Ti-SYSBIOS在beagleboneblack移植

am335x platform 移植//platform/am335x/src/plat_i2c.c:#ifdef beaglebone#include "armv7a/am335x/beaglebone.h"#else#include "armv7a/am335x/evmAM335x.h"#endif//i2c电源增加宏beaglebone的定义void I2CPowerup

2015-11-05 22:12:06 98

原创 c/c++ 学习笔记

c++: 成员函数: const int f()const; 在函数前面加const的 修饰的是函数返回值 在函数后面加const的,在成员函数实现的过程中,不能修改类的数据成员值

2015-10-26 16:13:08 77

原创 arm-linux 交叉编译制作

1 安装 crosstool-ng 下载源码: wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.20.0.tar.bz2 tar -jxvf crosstool-ng-1.20.tar.bz2 ubuntu下需要安装相关工具: sudo apt-get install sed bash cut dpkg-d

2015-10-21 11:07:20 258

原创 Linux USB子系统(1)

linux内核 2.6.28 1 链表//include/linux/list.hstruct list_head { struct list_head *next, *prev;};//声明与初始化#define LIST_HEAD_INIT(name) { &(name), &(name) }#define LIST_HEAD(name) \ struct

2015-10-13 11:27:38 67

转载 NandFlash详述(中)

【Nand Flash引脚(Pin)的说明】 上图是常见的Nand Flash所拥有的引脚(Pin)所对应的功能,简单翻译如下: 1. I/O0 ~ I/O7:用于输入地址/数据/命令,输出数据 2. CLE:Command Latch Enable,命令锁存使能,在输入命令之前,要先在模式寄存器中,设置CLE使能 3. ALE:Address Lat

2015-09-24 14:31:28 338

转载 对于嵌入式系统中DDRx初始化的总结

在移植bootloader到新嵌入式开发板的过程中经常会碰到初始化DDRx和DDR控制器的问题。而现在较高端的嵌入式CPU中早已集成了DDR2甚至DDR3控制器,这相较于早期使用SDRAM的CPU,在初始化的时候可能会复杂许多。再加上这些代码一般是在系统刚启动的时候运行的,通常为汇编代码,看着那一大坨汇编程序,不免有些恐惧感。但是如果对DDRx内存原理及其与DDRx控制器的关系有些了解的话,这个配

2015-09-18 11:18:34 464

转载 I/O数据总线(1)

在数据离开系统内存总线后,它通常传输到另一条总线,即主机I / O总线。在今天的产品中,最常见的主机I / O总线是P C I总线,但也存在着几种其他的总线,如S -总线,E I S A总线及V M E总线。主机I / O总线实现了几种重要的功能,包括:              允许加入新的插卡。             允许从内存总线输入和输出数据。          

2015-09-18 10:27:50 415

原创 uboot relocation 重定位的总结与分析

这几天都在研究uboot的移植工作uboot-2014.7:arch/arm/lib/relocate.S具体代码分析如下:ENTRY(relocate_code)ldr r1, =__image_copy_start  //镜像拷贝的源地址subs r4, r0, r1                        //r0 为重定位的新地址,r4

2015-07-14 10:37:39 514

原创 u-boot杂谈

1 uboot.map文件:如果想在源码中找到 对应编译的函数,只需要在uboot.map 中搜索函数名即可,就可以锁定函数所在的文件路径.text.board_init_f                0x33f80d4c      0x114 arch/arm/lib/built-in.o                0x33f80d4c                bo

2015-05-29 09:25:08 223

原创 移植 qt4.85到 N32926平台

移植qt4.8.5,首先要移植依赖库tslib-1.4下载tslib-1.4 源码首先安装软件:autoconf automake libtoolubuntu: sudo apt-get install autoconf automake libtool1)执行 ./autogen.sh2 )echo "ac_cv_func_malloc_0_nonnull=yes" >a

2015-01-12 18:25:18 588

原创 linux内存映射

段寄存器 保存着 段选择吗内存管理寄存器 保存zhe

2014-08-15 12:40:23 52

原创 list_for_each_entry 与 mmap

#define list_for_each_entry(pos, head, member) \for (pos = list_entry((head)->next, typeof(*pos), member);\    &pos->member != (head); \    pos = list_entry(pos->member.next, typeof(*pos),

2014-08-14 09:06:02 252

原创 字符设备的驱动程序

struct cdev 是字符设备在内核的抽象struct demo_dev{// 其他成员变量struct cdev cdev;};分配cdev内存:struct demo_dev * pdev = kzalloc(sizeof(struct demo_dev),GFP_KERNEL);初始化cdev结构:void cdev_init(struct cdev *c

2014-08-13 09:19:00 47

字符设备的驱动程序

struct cdev 是字符

2014-08-13 08:39:07 43

原创 AM335x uart

特点:

2014-08-12 14:12:34 266

原创 USB驱动相关知识

static struct usb_device_id id_table[] ={}

2014-08-12 13:15:44 208

LINUX 内核源代码情景分析(上)

打开一个文件全过程,执行一个可执行的程序的全过程等,结合内核源代码进行讲解,并且针对性的介绍所涉及的数据结构和算法,使读者对内核有深刻的理解。

2013-11-11

嵌入式linux应用开发

详细介绍嵌入式应用开发整体流程。涉及的主题有:开发环境的搭建,开发板上的硬件实验的操作,驱动程序的编写

2013-10-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除