ARM Linux嵌入式
文章平均质量分 74
qq405180763
这个作者很懒,什么都没留下…
展开
-
Linux设备驱动之I/O端口与I/O内存
(转)Linux设备驱动之I/O端口与I/O内存一、统一编址与独立编址该部分来自于:http://blog.chinaunix.net/space.php?uid=21347954&do=blog&id=443670,感谢mason_hu的分享。 从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上挂着N个接口,有相同的,有不同的,名字叫做存储器接口、中断控制接口、D转载 2012-07-13 22:13:49 · 1511 阅读 · 0 评论 -
ARM寄存器(R13/R14/R15)
一、ARM工作状态下的寄存器组织ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个位状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14~R0、程序计数器PC(即R15)、一个状态寄存器都是可访问的。通用寄存器通用寄存器包括R0~R15,可以分为3类:(1)未分组寄存转载 2014-09-11 10:17:39 · 37666 阅读 · 0 评论 -
屏蔽内核启动打印信息
最近做的4412板子终于经过测试形成产品,在这之前需要把内核启动过程中的打印信息去掉,并且更换启动LOGO,下面讲讲自己去掉打印信息的过程。去掉打印信息方法很多,我使用一个相对比较简单的,就是将下面选项的[*]去掉Device Drivers ---> Character devices --->[* ] Support for console on virtual t原创 2014-09-07 11:03:21 · 6688 阅读 · 0 评论 -
MMU分析
一、MMU是什么? MMU,英文名称为Memory Manage Unit, 中文可以为“内存管理单元”,或者“存储器管理单元”。MMU是硬件设备,它与virtual memory是紧密联系在一起的。 看一下s3c2410 datasheet Appendix 1中关于ARM920T的介绍(因为s3c2410采用的是ARM920T的处理器)。对ARM转载 2014-06-18 10:03:52 · 1018 阅读 · 0 评论 -
LAN9221网卡驱动之三 接收/发送完成中断
网卡中断主要是在接收新数据和数据发送完成时被调用,提醒网络驱动设备接收新数据和唤醒发送队列。static irqreturn_t smsc911x_irqhandler(int irq, void *dev_id){ struct net_device *dev = dev_id; struct smsc911x_data *pdata = netdev_priv(dev);原创 2013-04-19 17:02:53 · 1849 阅读 · 2 评论 -
AM3730 GPMC总线与FPGA通信
GPMC与FPGA通信转载请注明出处:http://blog.csdn.net/qq405180763/article/details/7616941最近这一两个月研究AM3730的GPMC与FPGA的通信,我负责的主要是涉及到GPMC这一块,由于之前就没有Linux基础,刚开始的时候进展很慢,还时不时的面临来自外界的压力,所以那会很痛苦。前一个月用来熟悉Linux和摸清一个方向,摸清GP原创 2012-05-30 23:12:07 · 21730 阅读 · 10 评论 -
LAN9221网卡驱动分析之一 发送数据
转载请注明出处:http://blog.csdn.net/qq405180763/article/details/8794887在LAN9221网卡驱动中,以字对齐往网卡缓存发数据,所以发送数据之前要考虑字对齐,并将发送字的次数计算出来。当网卡中TX_FIFO空间余量小于1600个字节时,通知上层停止发送队列,余量大于3200的时候网卡触发中断继续发送数据。static int sms原创 2013-04-14 15:14:35 · 3397 阅读 · 0 评论 -
skb_buf结构分析
转载请注明出处:http://blog.csdn.net/qq405180763/article/details/8797236 实际上skb_buf结构只是一块已经申请好的套接字缓冲区的指针和属性数据的描述集合,netdev_alloc_skb函数申请到一块套接字缓冲区后,返回记录这块缓冲区信息的skb_buf结构,在各个网络层传输的只是skb_buf结构,换句话说,仅仅是原创 2013-04-13 17:13:45 · 7003 阅读 · 0 评论 -
LAN9221网卡驱动之二 NAPI接收
转载请注明出处:http://blog.csdn.net/qq405180763/article/details/8800391LAN9221采用NAPI方式读取网卡缓存内数据。当接主机收大量网络数据时,网卡中断触发驱动程序接收数据,驱动程序被触发后调用轮询函数,在轮询函数里接收固定个数据包后,固定个数据为budget,一般是轮询注册函数netif_napi_add的第三个参数weight,如原创 2013-04-14 17:56:18 · 2114 阅读 · 0 评论 -
逻辑地址,线性地址及物理地址的区别(目前见过讲得最好的)
转自http://blog.csdn.net/erazy0/article/details/6457626#comments一、逻辑地址转线性地址机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址才能够被访问到。我们写个最简单的hello world程序,用gcc编译,再反汇编后会看到以下指令:mov 0x80495转载 2012-11-30 16:57:19 · 1879 阅读 · 0 评论 -
DM3730 DSPLink在Linux下的环境搭建
首先从TI官网下载一个DM3730的SDK包(DVSDK),这个软件开发包里的东西很全,后期开发几乎所用到的所有工具都在里面了。执行下载的DVSDK文件,安装开发包,里面有DM3730的Linux内核(PSP)、DSPLink、XDCTools及其他的一些开发工具,参照DSPLink/doc/目录下UserGuide的PDF文档以及http://processors.wiki.ti.com/ind原创 2012-08-13 10:37:56 · 2149 阅读 · 0 评论 -
内存管理单元(MMU)介绍
MMU是存储器管理单元的缩写,是用来管理虚拟内存系统的器件。MMU通常是CPU的一部分,本身有少量存储空间存放从虚拟地址到物理地址的匹配表。此表称作TLB(转换旁置缓冲区)。所有数据请求都送往MMU,由MMU决定数据是在RAM内还是在大容量存储器设备内。如果数据不在存储空间内,MMU将产生页面错误中断。MMU的两个主要功能是:1. 将虚地址转换成物理地址。 2. 控制存储器存取允许。M转载 2012-07-23 22:11:10 · 3043 阅读 · 0 评论 -
IMX6Q的DDR3初始化配置
处理器:IMX6Q5EYM10ADDDR3:NT5CB128M16BP-CG 16位1333MHz数据频率相比于Exynos4412的内存,飞思卡尔IMX6的内存比较麻烦,耗费了比较多的时间调试才稳定,当然这也是因为我无缘无故改掉了内存拓扑结构和换了内存芯片型号的原因。硬件设计参照天嵌的E9设计,设计之初没有对照飞思卡尔提供的硬件设计方案,飞思卡尔的方案里提供了TOP和在6层板上使用了原创 2015-04-20 16:39:32 · 17883 阅读 · 3 评论