自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 视频基本知识

一个序列的第一个图像叫做IDR图像(立即刷新图像)。只要显示屏幕分辨率>=1280*720即可分为HD等级。SPS(序列参数集)/PPS(图像参数集):包含了初始化H.264解码器所需要的信息参数,包括编码用profile,level,图像宽和高,deblock滤波器H.264把图像分为一帧(frame)或两场(filed);帧又分为片(slice),片由宏块(MB)组成,宏块是编码处

2016-02-23 21:19:17 1008

原创 Ethernet/IP

之前花了一段时间看过Ethernet/IP的东西,虽然最后没有移植成功,但是依旧是学到了不少的东西。  熟悉了STM32F407的开发板,在大学期间,有上过嵌入式系统这门课用的是STM32F103系列的,也算是对这次任务打下了一定的基础。  了解了LwIP协议和uc/os ii实时操作系统。  对协议栈也有了一定的概念。

2016-02-22 22:22:15 7497 3

原创 linux启动代码分析

在bootloader将linux的uImage搬到指定内存空间地址并且引导linux内核启动后,linux首先从arch/xxx_cpu/kernel/head.S先一步一步执行汇编代码。  (1)加载bootloader_tags的地址  (2)使能指令cache  (3)使能数据cache  (4)使能MMU  (5)初始化TLB  (6)建立中断异常向量表  (

2016-02-21 20:45:23 1991

原创 linux下模块编译基本知识和格式

Make -c 只编译不链接Make -C切换到指定目录再执行make过程make -C $(LINUXROOT) M=$(PWD)EXTRA_CFLAGS="$(EXTRA_FLAGS)" modules当用户需要以某个内核为基础编译一个外部模块的话,程序会自动到指定的dir目录中查找模块源码,将其编译,产生ko文件。

2016-02-21 15:49:39 1155

原创 linux下I/O体系结构和设备驱动程序

一台计算机包括集中不同类型的总线,它们通过被称为“桥”的硬件设备连接在一起。任何I/O设备有且仅能连接一条总线。linux内核包含了辅助函数来简化汇编语言指令的访问I/O端口(inb(),inb_p(),outb(),outb_p()).通常I/O设备驱动程序为了探测硬件设备,需要盲目地向某一I/O端口写入数据,但是,如果其他硬件设备已经使用了这个端口,那么系统就会崩溃,为了防止这种情

2016-02-21 14:04:13 1039

原创 linux下VFS

通用文件模型由下列对象类型组成:超级块对象:存放已安装文件系统的有关信息索引节点对象:存放关于具体文件的一般信息文件对象:存放打开文件和进程之间交互的有关信息目录项对象:存放目录项与对应文件进行链接的有关信息  所有的超级块对象都以双向循环链表的形式链接在一起。  任何基于磁盘文件系统都需要访问和更改自己的磁盘分配位图,以便分配或释放磁盘块。  文件系统处理文件所需要的

2016-02-20 14:51:51 442

原创 linux下中断子系统

request_irq().  request_thread_irq().//分配中断资源,使能中断线和中断处理函数。  几个比较关键的数据结构struct irqactionstruct irq_descstruct irq_chip //hardware interrupt chip descriptor在arch/xxx_cpu/xxx_sys/irq.c下

2016-02-16 22:34:32 1336

原创 linux下MTD驱动

因为之前不是很了解文件系统,所以要探究一下mtd来加深一下印象。

2016-02-16 21:58:02 6875

原创 linux下网络驱动

在stmmac_dvr_probe函数中,一开始获取linux中的硬件资源,分配一个网络设备的内存空间alloc_etherdev(本质还是调用alloc_netdev_mqs()).,接下来比较重要的是stmmac_mac_device_setup()函数。里面将mac_device_info中的三个operations注册了回调函数,以便让接下来的函数stmmac_probe()进行调用。

2016-02-15 22:20:56 1152

原创 linux下SPI驱动

进入xxx_spi_probe()函数,首先分配spi_master内存空间,spi主控制器被抽象为spi_master  spi_bitbang是对spi主控制器的硬件操作函数和参数的封装。  在probe中要注册上面这些回调函数。  之后就是获得一些platform的资源(时钟,中断,内存空间等),再对spi主控制器进行复位(控制,地址,数据和命令进行写零操作)。  之后调用s

2016-02-15 21:41:07 875

原创 linux下TTY驱动(serial)

之前因为是刚入门所以看了串口有关的东西,一开始看了stm32f407上的串口编程(Keil MDK),那算是裸的驱动了。  linux下的串口如果要正常工作的话,就必须通过TTY这个子系统,TTY子系统算是比较复杂,概念也是比较复杂的,有三类驱动程序:控制台,串口,pty。任何tty驱动程序的主要数据结构是结构tty_driver.概念性的问题还是去看一下《linux设备驱动程序》这本书,它也

2016-02-15 20:28:35 3964

原创 linux下I2C驱动

说起Linux下的子系统,I2C子系统已经算是比较简单的框架了。  首先相关代码在driver/i2c下.built-in.o.cmd .i2c-dev.o.cmd algos/ i2c-boardinfo.c i2c-core.h i2c-dev.o muxes/.i2c-boardinfo.o

2016-02-14 21:48:29 1187

原创 platform_device和platform_driver

上班已经3个月了,本来就打算工作中有什么收获就能够写出来的,虽然这段时间里看了很多linux子系统(I2C,TTY,SPI,MTD,网络,USB)相关的内容,但是,因为没有做过比较多的实践经验,所以不敢马上写出来,但是又怕过了段时间很多东西都忘了,所以还是先把这段时间的感悟和心得写下来。如果要开始写linux系统的话,我觉得就不得不从platform_device和platform_driver开

2016-02-14 19:59:53 775

空空如也

空空如也

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

TA关注的人

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