- 博客(26)
- 资源 (17)
- 收藏
- 关注
原创 src/hwif和src/drv的区别
到现在才明白vxworks下src/hwif和src/drv两个目录的区别src/drv 下的驱动代码,经过编译生成libdrv.a,由vxworks调用而src/hwfi下的驱动代码,是由target/config/comps下的文件调用,在kernel configuration下就可以看到刚才编译的组件参考文件:vxWorks6.x下添加vxbus型的第三方驱动http://
2014-01-27 21:26:41 1445
转载 Broadcom芯片53262的SDK移植
转载:http://blog.csdn.net/crstal_522/article/details/6038594 我们这款产品的硬件搭配为PowerPC860+BCM53262,尽管PowerPC860在这个年代略显不够Power,但是它以极高的稳定性还是占有一席之地。BCM53262和BCM53242是兄弟,很多人都用过BCM53242,实际上它们是一样的,在Broadcom公司的家
2014-01-27 18:03:49 10151 1
原创 MPC8641机制
这几天分析uboot代码,我就画了下面的一幅图。其中框架直接的连接就不画了,太难画了。稍微解释下,当mmu开启时,cpu的EA会依次通过bat和tlb转化为pa。此时pa在通过law送到对应的controller。如果是local bus controller,还可以通过br寄存器送出cs信号。
2014-01-27 12:08:48 1083
转载 收藏简明Vim练级攻略
本文来自《Learn Vim Progressively》,译文来自酷壳网陈皓整理编译的《简明Vim练级攻略》。这是一篇给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。文章内容如下:Vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。你想以最快的速度学习
2014-01-25 14:11:53 728
原创 powerpc nor flash启动
cpu 访问nor flash来进行启动。假设cpu上电后,从0xffff0000启动。但是uboot的链接地址为0xefff0000。然后生成uboot.bin文件这时一定要注意存储地址和运行地址的关系。1.存储地址,又叫加载地址即代码存放的位置2.运行地址(编译地址,链接地址)代码运行的地址在这时,我们的运行地址和存储地址不同。0xffff0000:
2014-01-24 22:28:34 3914
转载 MPC8572调试记录
转载地址:http://blog.sina.com.cn/s/blog_6adcb353010113t9.html2008-5-131、准备从bootrom开始调试,使用probe烧录。打开workbench3.0发现不支持MPC8572。打电话给OCD专家结果找不到人。2、改一下思路,先不调试bootrom了,因为现在里面已经有了uBoot,会有一些地址信息从
2014-01-23 22:00:43 3527
原创 powerpc memory和io访问原理
第一部分、MPC85xx/MPC86xx处理器中的寄存器MPC85xx/MPC86xx处理器中有两类寄存器:1. PowerPCE500(MPC85xx)内核的内部寄存器,如MSR,HID寄存器等,使用mtspr,mfspr指令可以对这些寄存器进行读写。PowerPC E600(MPC86xx) 内核的内部寄存器,如IBAT,DBAT寄存器等,使用mtspr,mfspr指令可以对这些寄
2014-01-23 20:15:45 5243
转载 基于MPC8641HPCN上的UBoot源代码分析
第一部分:U-Boot概述Bootloader(引导加载程序)是操作系统运行前执行的第一段程序,其作用是初始化硬件设备,建立内存空间映射表,为最终调用系统内核建立适当的系统软硬件环境.嵌入式系统一般没有通用的Bootloader,不同的系统硬件组成结构对应不同的代码,因而,针对特定的硬件平台,需要对Bootloader进行移植.在嵌入式系统中,常见的引导加载程序有U-Boot,Red Boot
2014-01-23 13:57:44 2189
转载 PowerPC上电复位的过程描述
说明:PowerPC 的启动不同于普通的CPU启动,由于其为了适应硬件系统的不同需求,设定了两类启动的地址跳转。而CPU的启动除了涉及到地址跳转的问题外,还牵扯启动源 的选择、硬件配置字的设定以及仿真器的配置等等相关一系列问题。在这系列博客中上述问题都会涉及到,本文重点描述PowerPC上电复位后的启动流程。其实要充分实在的理解PowerPC的启动过程,最可靠的方法就是将官方的芯片手册相关部分读懂
2014-01-23 13:39:28 2880
转载 P2020 ( e500核 ) 上电启动及uboot流程
转载地址:http://blog.csdn.net/gorilla0123/article/details/5930304#comments 系统上电到执行第一条指令前,需要经过配置PLL、Local Bus控制器、LAW、MMU等操作,这些配置完全是由Cpu根据芯片的默认值和芯片外部配置引脚的输入状态自动完成的。如:1) Cpu根据cfg_sys_pll[0:2]的输入状态决定当前
2014-01-22 22:29:20 8320 1
转载 e600 core MMU的应用
MMU可以提供逻辑地址到物理地址的转换,对于应用程序可以提供超过CPU寻址范围的逻辑地址到物理地址的转换,不同的应用程序使用不同的逻辑地址可以对应到相同的物理地址。另外MMU对于CPU的地址空间(不止是内存空间)以页或块的方式提供保护(具体表现为可设置为 只读,不可用,nocache)。对于系统而言,利用MMU的页保护机制是比较有意义的。使用MMU的页保护机制必须安装VXVMI组件,并定义IN
2014-01-22 22:14:31 1164
转载 e600 core MMU技术理解
e600 core MMU技术理解 MMU支持三种地址转换:1. 页地址转换(每页4K)2. 块地址转换(每块1=28K-256M)3. 实地址转换(无地址转换-物理地址与虚地址一一对应)CPU实现地址转换的机制: MMU在关闭时,CPU处理地址就走蓝线所示路线,程序的逻辑地址就与物理地址一一对应,这地址包括CPU的4G的地址空间,不仅仅指内存部分。
2014-01-22 22:07:37 1425
转载 S3C44B0的中断模式
S3C44B0的向量中断模式概念 注:arm7的工作模式是arm7的这个内核提供的,而厂商在生产时,在arm7这个内核的基础上,外扩了各种中断及其相关的中断控制器,而这些中断发生一般会进入IRQ模式,这点很好理解。 (1)向量中断模式(IRQ支持,FIQ不支持) 当系统发生IRQ中断时候,cpu的PC会读取位于0x18处的IRQ中断指令(也就是说
2014-01-21 23:01:00 1804
转载 S3C44B0的向量和非向量中断和的详细源码分析
S3C44B0的向量中断和非向量中断模式的详细源码分析 (1)向量中断 中讲到当发生IRQ中断时,中断控制器会在数据总线上加载分支指令跳到相应中断源的向量地址,即一级中断向量表中对应的中断向量入口地址。 ldr pc,=HandlerEINT0 ; 0x20ldr pc,=HandlerEINT1……
2014-01-21 23:00:19 989
转载 关于S3C44B0中断的具体的启动代码解释
关于中断的具体的启动代码解释: 可以这么理解,44B0 中断系统中有两张中断转移表,经过二重转移才跳到中断处理程序。第一张中断向量表由硬件决定,所在区域为ROM(flash),地址空间从0X00开始,其中0X00-0X 1C为异常向量入口地址,0X20-0XC0为中断向量入口地址。另一张中断向量表在RAM 中,可以随便改,其位置在程序连接后才定。由于 RAM 放在地址空
2014-01-21 22:52:32 975
转载 vxWorks内存管理
转:缩短vxworks启动时间的方法 对于有mmu的cpu系统,vxworks系统的一般启动时间在10秒左右。相对于windows之类启动时间几分钟来说,可以说是非常短了。然而对于从上电到启动用户程序在1秒内的特殊要求。10秒显然是太长了。这里解决了这个问题。具体的平台为一块powerpc7xx单板机,有南桥,北桥,pci,vme总线。这里的解决方法,实际上是不限于powerpc cpu
2014-01-21 22:29:58 5436
转载 S3C2440 VXWORKS 移植笔记
转载:http://xiyong8260.blog.163.com/blog/static/665146212008521105148147/2006年下半年,我们在自己设计的BCNG2440开发板上移植了VXWORKS。移植的过程参考了网络上一些BSP代码,与现有的代码不同的是,我们的BSP实现了内存的重映射,中断向量的重新分配;以及cache和MMU的开启。移植的目的是用于一个数据采集
2014-01-21 21:58:10 3567
转载 WINDRIVER.TORNADO.V2.2安装(附图解和序列号)
转载地址:http://hi.baidu.com/qiangjiewang/item/dcd67092a3ce8331336eeb2e一. 下载软件: 在www.verycd.com 中就可以找到: [风河VxWorks].WINDRIVER.TORNADO.V2.2.FOR...CD1 [风河VxWorks].WINDRIVER.TORNADO.V2.2.FOR...C
2014-01-20 21:51:34 19142 1
转载 中断号和芯片中断引脚的关系
转载地址:http://zhwen.org/xlog/?p=315一直以来搞不懂这个中断号的来历,总以为是中断控制器自己规定的一个号,但是最近在看了s3c2440的中断控制后才发现不是这么一回事.2440的中断处理只能处理32个中断,但是其在内核中出现的中断号却有51,58等.而且它的外部中断INT4~7共享一个中断控制寄存器的一位,INT8~23也是共享控制寄存器的一位.我就好奇了,
2014-01-19 21:24:54 6945 2
转载 linux 应用调试
调试core文件ulimit -aulimit -c unlimitedgdb a.out -c -g core(gdb) bt
2014-01-19 17:41:45 686
转载 linux 内核崩溃处理
pc : [1.定位代码崩溃在内核中还是xxx.kocat /proc/kallsyms >1.txtc0034818 T __kmalloc...c00082a8 t quiet_kernel /*最开始的是虚拟地址*/...bf000000 t $a [cdd] ..由此可看代码崩溃在xxx.ko2.定位崩溃在xxx.ko中的哪个函数
2014-01-19 17:26:57 3911
原创 linux设备分类
linux驱动程序分为三类1、字符设备 steam方式,顺序访问,没有缓冲2.、块设备 block方式,随机访问,有缓冲3、网络设备 破坏了linux设备的规则(任何设备可以按文件访问),是通过socket调用的,所以单独列出来。
2014-01-19 16:35:19 1281
原创 linux kernel中typeof和container_of的理解
1.typeof引入原因#define min(x,y) ((x) > (y) ? (y) : (x))如果min(x++ , y++),这个宏定义就会有问题#define min(X,Y) \(__extension__ \({ \ typeof(X) __x=(X), __y=(Y); \ (__x}) \) 此时linux
2014-01-19 16:25:55 2519
转载 linux gpio字符设备驱动
在linux下编写led驱动,控制相应的gpio管脚。在这里有两种方式1) 直接操作相应的寄存器2) 通过内核提供的gpio操作库函数第一种方式就省略了,只讲第二种方式。这里板卡上有两个led灯,在用户空间采用两种方式控制led1. /dev/led0 /dev/led1fd0 = open("/dev/led0", O_RD_WR);ioctl(fd0, 1, 0
2014-01-19 15:00:01 4266
转载 linux字符设备驱动框架理解
字符设备框架主要有四个主要数据结构1. struct cdev2. struct file_operations3. struct inode4. struct file进程通过文件表(file table)的fd访问inode,在open之前cdev的file_operations赋值给filep->file_operations。设备open时驱动可以通过ino
2014-01-19 14:28:31 1862
vc 网卡判断
2014-10-12
bcm5690交换芯片工作原理
2014-03-16
千兆网口Freescale_ETSEC_+_Marvell_88E1111_uboot_Linux_驱动分析.doc
2014-02-11
FPGA配置方式
2011-11-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人