Linux Driver
文章平均质量分 75
yazhouren
这个作者很懒,什么都没留下…
展开
-
gcc之-fomit-frame-point
Kernel里的dump_stack(), oops打印出来的backstrace调用链表是怎样实现的呢?大家都知道当发生函数调用的时候,函数的参数传递,返回值传递都要遵循一定的规则,在ARM体系架构下,这个规则叫做Procedure Call Standard for the ARM Architecture。在这个规则里规定了函数调用的时候,返回地址在LR里面,第一到第四个参数在r0~r3里面,第五到第八个参数在Stack里面,返回值在r0里面。这是基本规则,C编译器产生汇编指令是必须遵循这些规则,这转载 2021-03-17 18:57:31 · 1078 阅读 · 0 评论 -
意外发现,Cortex-M7的性能和诸多关键参数碾压A7和R7
origin: https://www.amobbs.com/thread-5676525-1-1.html之前一直以为ARM, A-R-M, M排在最后也最便宜,肯定性能最低,但最近意外发现并非如此,M7居然完全碾压R7和A7!如下表所示,我从ARM网站,eembc.org网站查到的结果,竟然发现M7的性能比A7和R7都强从表中可以看出,M核性能、实时性、成本和能效最高, R核的总线带宽更高还支持多核, A核带MMU可以跑Linux, Android。另一个没有列出的是M核响应中断最快捷。看来NX转载 2021-03-04 09:39:44 · 7206 阅读 · 2 评论 -
volatile关键字及编译器指令乱序总结
本文简单介绍volatile关键字的使用,进而引出编译期间内存乱序的问题,并介绍了有效防止编译器内存乱序所带来的问题的解决方法,文中简单提了下CPU指令乱序的现象,但并没有深入讨论。 以下是我搭建的博客地址: http://itblogs.ga/blog/20150329150706/欢迎到这里阅读文章。volatile关键字volatile关键字用来修饰一个变量,提示编译器这个变量的值随时会改变。通常会在多线程、信号处理、中断处理、读取硬件寄存器等场合使用。程序在执行时,通...转载 2021-03-03 16:45:25 · 779 阅读 · 1 评论 -
李浩: 再谈 volatile 关键字
本文内容:volatile关键字的含义,它与barrier()和编译乱序的关系,以及内核里面READ_ONCE()、WRITE_ONCE()的实现原理。作者简介:李浩,就职于南京富士通南大软件,熟悉 x86 架构,对内存和文件系统有些研究。最常见的用法如果一个变量被声明为volatile的,就是告诉编译器即使我们当前编译的代码不会修改这个变量,该变量对应的内存数据也可能会由于其他原因而被修改,这可能的原因有很多,比如该变量对应的内存位置是使用memory mapped I/O机制映射的一...转载 2021-03-03 16:17:44 · 316 阅读 · 1 评论 -
arm生态发展与交叉编译链选择
因为工作需要,最近在找一个能用于aarch64的交叉编译链。距离上次使用arm设备已经过去四五年了。arm发生了较大的变化,于是做了个完整的调研,并整理出来(资料来源于互联网,我只是按照时间线整理并补充完整)。arm的历史ARM的设计是艾康计算机公司于1983年开始的开发项目。这个团队由Roger Wilson和Steve Furber带领,着手开发一种类似高级6502架构的处理器。Acorn计算机有一大堆建构在6502处理器上的计算机,因此能设计出一颗类似的芯片即意味着对公司有很大的优势.转载 2020-12-01 10:14:15 · 693 阅读 · 1 评论 -
使uboot支持S3C6410的SD启动
原文地址:http://www.233.com/linux/fudao/20100226/092603175.html这里使用的uboot并非uboot官方发布的uboot代码,而是为三星定制的一个uboot版本s3c-u-boot-1.1.6,其代码作者就包括了三星的程序员与denx的员工。这个版本支持SD启动,不过默认是nand启动,使它支持uboot需要做以下事情: 1、转载 2013-08-19 16:29:15 · 727 阅读 · 0 评论 -
QT210烧写UBOOT到SD卡原理以及UBOOT启动
原文地址:http://blog.csdn.net/shushi0123/article/details/8018998世界早已进入cortex-a8了,我也得跟进一下所以买了QT210的开发板。 长话短说开始搞SD卡烧写UBOOT,从SD启动UBOOT。 从s5pv210_irom_applicationnote_preliminary_200转载 2013-08-19 21:23:17 · 924 阅读 · 0 评论 -
S3C6410 SD卡启动uboot分析(详细)
原文地址:http://my.oschina.net/u/174242/blog/752886410的手册上说,可以从nandflash、onenand、SD卡启动,没有专用的烧录工具的情况下,只有SD卡启动是可以考虑 的。手册上看到,SD卡启动,实际上是先执行片内IROM中的一段程序,该程序从SD卡中读取代码,写到stepping stone 中,stepping stone是位于0x0c0转载 2013-08-19 16:35:54 · 974 阅读 · 0 评论 -
S5PV210 -- UBOOT启动过程解析(TINY210)
原文地址:http://blog.csdn.net/xiaoxizi198807/article/details/7599859//主题:S5PV210之UBOOT-2011.06启动过程解析 //作者:[email protected] //平台:S5PV210 ARMV7 TINY210 //-------------------------------转载 2013-08-19 21:03:21 · 908 阅读 · 0 评论 -
如何写uart驱动?
最近买了个Cortex-A8,想学习驱动编写,但是最简单的uart驱动不知如何编写?怎么入手呢?1. 查看datasheet,找到uart地址2. 怎么转载uart驱动呢?自动转载驱动是如何实现的?是用udev吗?还是启动脚本?糊涂呀!糊涂呀!!原创 2013-08-21 14:25:04 · 904 阅读 · 0 评论 -
利用skyeye调试UART驱动
我使用宋宝华的第二版光盘的所给的环境来进行搭建的。在这个环境中,skyeye已经装好了,linux kernel 2.6.31也能在skyeye上跑起来。具体请看:使用skyeye运行uboot, linux-2.6.31和busybox1. 需要在virtualBox中添加一个串口,这样让skyeye中的linux可以访问串口。 做法:virtualBox 设置->串口->端口原创 2013-08-14 22:00:44 · 848 阅读 · 0 评论 -
onenand小结 及 与nor 和nand 的区别
原文地址:http://blog.csdn.net/wh_19910525/article/details/7381801OneNand是针对消费类电子和下一代移动手机市场而设计的,一种高可靠性嵌入式存储设备。随着过去几十年的Nand技术的发展,一些公司,基于原先的NAND的架构,设计出一种理想的单存储芯片,其集成了SRAM的缓存和逻辑接口。OneNand既实现NOR Flas转载 2013-08-29 08:19:01 · 617 阅读 · 0 评论 -
Linux MTD下获取Nand flash各个参数的过程的详细解析
原文地址:http://www.crifan.com/files/doc/docbook/nand_get_type/release/html/nand_get_type.htmlLinux MTD下获取Nand flash各个参数的过程的详细解析版本:v1.1Crifan Li摘要本文主要介绍了Nand Flash的转载 2013-08-29 19:22:01 · 932 阅读 · 0 评论 -
struct nand_ecclayout 之解义 ,eccbytes,eccpos,eccfree
原文地址:http://blog.csdn.net/lanmanck/article/details/5813361【转帖请注明出处:blog.csdn.net/lanmanck】 内核的nand flash驱动真可谓用“日新月异”来形容,今儿个刚写完的驱动,等到明天下个新内核放进去,又不好使了,shit!这里讨论下struct nand_ecclayout,即na转载 2013-08-29 21:13:53 · 802 阅读 · 0 评论 -
Android Bluetooth蓝牙开发\蓝牙协议\蓝牙通信例子_Android支持蓝牙4.0版本_BLE开发
原文地址:http://blog.csdn.net/changemyself/article/details/8454633一、Android Bluetooth现状在android官网可以了解到android4.2新增了部分新功能,但是对于BT熟悉的人或许开始头疼了,那就是Android4.2引入了一个新的蓝牙协议栈针。谷歌和Broadcom之间的合作,开发新的蓝转载 2013-09-07 20:51:26 · 1814 阅读 · 0 评论 -
关于samsung连接BLE设备的一些资料汇总和开发过程一些经验总结
原文地址:http://my.eoe.cn/873912/archive/1319.html被公司分到做一个蓝牙4.0的项目,对这种软硬结合的东西也比较感兴趣,所以很快投入到android蓝牙4.0的项目中来。开发过程比我想象中的要难,这里所说的难不是编码,不是架构,不是逻辑上的难。而是,找遍了整个百度,google。也没有看到太多关于android开发BLE设备的资料。查转载 2013-09-07 21:41:35 · 1021 阅读 · 0 评论 -
Wi-Fi基带芯片和Wi-Fi无线网卡设计方案
原文地址:http://www.eet-china.com/ART_8800662901_617687_TA_d3e1ef8c.HTM?jumpto=view_welcomead_13787349953431999年工业界成立了Wi-Fi联盟,致力解决符合802.11标准的产品的生产和设备兼容性问题。Wi-Fi不仅应用于目前销售的几乎每一部智能手机中,而且几乎应用于所有的掌转载 2013-09-09 22:05:35 · 1646 阅读 · 0 评论 -
android学习
主要参考:1. 老罗博客 http://blog.csdn.net/luoshengyang/article/details/89234852. 博客:http://blog.csdn.net/column/details/androidcore.html?page=23. andorid驱动: http://blog.csdn.net/jmq_0000/article/detail原创 2013-09-10 08:51:54 · 674 阅读 · 0 评论 -
为什么通信终端芯片设计难?
原文地址:http://blog.sina.com.cn/s/blog_59cb3f700100ah79.html好像有一种潜在的感觉,通信终端的芯片设计就是很难.已经在通信行业里混了这么多年,做通信终端的设计也已经很多年了.最近这几年又一直跟这个终端芯片设计牵连在一起.我的感觉就是,确实难,但这种难有技术上的,更多的是人为的.要做通信终端的芯片,首先要有一拨精通通信协议栈转载 2013-09-12 15:47:17 · 1756 阅读 · 0 评论 -
uboot烧写yaffs2过程中,如何写入oob数据的
原文地址:http://www.rosoo.net/a/201005/9466.htmluboot烧写yaffs2过程中,如何写入oob数据的?关于uboot 写yaffs2文件系统代码。现在正在看uboot烧写yaffs2的代码,有点疑问TAG: uboot 文件系统 OOB YAFFS2 求助:关于uboot 写yaffs2文件系统代码转载 2013-09-05 16:12:47 · 1087 阅读 · 0 评论 -
协议栈和物理层软件在芯片上的分布
原文地址:http://blog.sina.com.cn/s/blog_59cb3f700100xig7.html刚才有个小同学在MSN上问我,为什么协议栈软件总是跑在ARM上,为什么物理层软件跑在DSP上呢?呵呵,好像从咱们开始做终端软件那天起,就是这样子设计的。为什么呢?我简单的回答了一下:因为软件的结构不同。协议栈软件基本上都是基于状态机的,有很多层次结构,需转载 2013-09-12 15:37:24 · 1499 阅读 · 0 评论 -
自旋锁
在单处理器非抢占式内核中,自旋锁就是一条空语句,因为内核是不可抢占的在单处理器非抢占式内核中,自旋锁就是配置内核非抢占,这样就可以实现保护资源,避免内核死锁在SMP抢占式内核中,自旋锁怎么处理?难道代码自己知道发生了不同的处理器上访问这个资源,还是同一个处理器另一个请求这个资源??? 参考资料:http://bbs.chinaunix.net/thread-2002749-1-1.ht原创 2013-12-20 14:24:53 · 641 阅读 · 0 评论 -
devfs、sysfs、udev介绍
原文地址:http://blog.csdn.net/aaronychen/article/details/2953345一、devfslinux下有专门的文件系统用来对设备进行管理,devfs和sysfs就是其中两种。在2.6内核以前一直使用的是devfs,devfs挂载于/dev目录下,提供了一种类似于文件的方法来管理位于/dev目录下的所有设备,我们知道/dev目录下的每一个文件都对应转载 2013-08-06 17:36:54 · 814 阅读 · 0 评论 -
关于开源无线路由器的资料
原文地址:http://blog.chinaunix.net/uid-20543672-id-94361.html由于做项目的需要和自己的爱好,最近在找关于无线路由器的资料,找到了些相关的资料,在这里总结一下。一、无线路由器与无线AP的区别(资料来源:详谈无线路由器与无线AP的区别)AP为Access Point简称,一般翻译为“访问节点”,无线AP主要是提供无转载 2014-01-15 10:15:41 · 981 阅读 · 0 评论 -
V4L2
原文地址:http://blog.chinaunix.net/uid-20543672-id-3318924.html最近在研究Linux下的摄像头驱动的整体构架和编程,必然涉及到V4L2。V4L2是内核针对视频设备所抽象出的一个专门的子系统,对于这个子系统,在大多数驱动书籍中都没有提及。幸好有http://lwn.net/网站上的经典系列文章《Video4Linux2》的介绍,才使得编写转载 2014-01-15 10:23:47 · 793 阅读 · 0 评论 -
linux-3.4.2之poll机制分析
http://liu1227787871.blog.163.com/blog/static/205363197201281215457217/#define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)#define SYSCALL_DEFINEx(x, sname, .转载 2014-04-15 21:44:42 · 623 阅读 · 0 评论 -
深入分析 Linux 内核链表
原文地址:http://www.ibm.com/developerworks/cn/linux/kernel/l-chain/一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时原创 2014-04-21 17:46:46 · 553 阅读 · 0 评论 -
一些经久不衰的linux 视频教程列表,看看嵌入式开发需要什么
原文地址:http://blog.csdn.net/gooogleman/article/details/6684085转载 2014-07-15 16:24:59 · 2098 阅读 · 0 评论 -
Android build框架
原文地址: http://blog.csdn.net/jinlking/article/details/4209233转载 2014-07-15 16:47:51 · 690 阅读 · 0 评论 -
适用于2G/3G/4G的无线终端基带芯片
原文地址: http://www.eet-china.com/ART_8800693469_617687_TA_08259a79.HTM转载 2014-10-09 16:46:22 · 3541 阅读 · 0 评论 -
关于网卡及MAC和PHY的区别 ,MII
原文地址:http://www.cnblogs.com/touchblue/p/3535584.html一块以太网网卡包括OSI(开方系统互联)模型的两个层。物理层和数据链路层。物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。转载 2014-10-09 16:17:13 · 2674 阅读 · 0 评论 -
cat proc/version在内核中是如何实现的?
proc/version平时的时候我们都在用cat /proc/version来获得我们内核的版本号,但是是如何产生的呢?let's see see fs/proc/version.c。[cpp] view plaincopystatic int version_proc_show(struct seq_file *m, void *v) { s转载 2014-10-14 16:51:33 · 2281 阅读 · 0 评论 -
Linux内核访问外设I/O资源的方式
原文地址: http://blog.chinaunix.net/uid-20801802-id-1839145.html转载 2014-10-14 17:17:08 · 596 阅读 · 0 评论 -
__attribute__ 之weak,alias属性
原文地址:http://blog.sina.com.cn/s/blog_a9303fd90101d5su.htmlWeak Alias 跟 Weak Reference 完全没有任何关系,不过是我在看到 Weak Reference的时候想到的而已。Weak Alias 是 gcc扩展里的东西,实际上是函数的属性。这个东西在库的实现里面可能会经常用到,比如 glibc 里面就用了不少。转载 2014-10-15 20:49:03 · 836 阅读 · 0 评论 -
交换机芯片与路由器芯片的区别
交换机芯片,如davicom的8806系列,实现了数据链路成原创 2014-10-16 10:15:06 · 5633 阅读 · 0 评论 -
移植lwIP至U-Boot
原文地址:http://www.wl-chuang.com/blog/2011/11/04/porting-lwip-to-uboot/转载 2014-10-16 17:01:22 · 1707 阅读 · 1 评论 -
linux驱动之firmware
原文地址:http://blog.csdn.net/mirkerson/article/details/7849453转载 2014-10-16 16:19:28 · 1387 阅读 · 0 评论 -
linux内核SPI总线驱动分析(一)
原文地址:http://www.cnblogs.com/liugf05/archive/2012/12/03/2800457.htmlSPI总线驱动分析 1 SPI概述 SPI是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EE转载 2015-06-17 20:24:13 · 545 阅读 · 0 评论 -
Linux SPI总线和设备驱动架构之一:系统概述
origin: http://blog.csdn.net/droidphone/article/details/23367051SPI是"Serial Peripheral Interface" 的缩写,是一种四线制的同步串行通信接口,用来连接微控制器、传感器、存储设备,SPI设备分为主设备和从设备两种,用于通信和控制的四根线分别是:CS 片选信号SCK 时钟信转载 2015-06-17 20:40:58 · 479 阅读 · 0 评论 -
linux内核SPI总线驱动分析(二)
origin: http://www.cnblogs.com/liugf05/archive/2012/12/03/2800459.htmlSPI驱动编写 简而言之,SPI驱动的编写分为:1.spi_device就构建并注册 在板文件中添加spi_board_info,并在板文件的init函数中调用spi_register_board_info(s3c转载 2015-06-17 20:25:11 · 568 阅读 · 0 评论