- 博客(52)
- 资源 (7)
- 收藏
- 关注

原创 圈圈的Blog搬家了
原CU Blog地址:http://blog.chinaunix.net/uid/8447633.html Blog因为CU数据库问题登录登录不上,联系CU修改又麻烦。把CU上部分的Blog帮过来,其中有一部分是转载经过”博客搬家以后都成了“原创”。2016年8月8日作为分解先,之后坚持在优快云只写原创Blog。Keep writing, don't be lazy
2016-08-08 11:56:34
328
转载 一个成功的Git分支模型
本文译自 http://nvie.com/posts/a-successful-git-branching-model/ (by Vincent Driessen)–本文中我会展示一种开发模型,一年前该模型就已经被我用在所有的项目中(包括工作中的项目和私有项目),结果是非常成功的。我早就想为此写点东西,可直到现在才有时间。本文不会讲述任何项目的细节,只会涉及到分支策略和发布管理。本文使用Git作为
2016-08-08 09:33:19
1017
原创 花样滑冰教程视频
先说一些题外话,一直以来我就没弄明白,为什么花样滑冰,叫个figure skating,直到看了维基,才知道早年比赛中有强制项目,就是在冰面上滑出固定的图案,有些很像数字,所以就叫figure了。冰鞋有很多种,适合不同类型的冰上运动。花样滑冰的冰刀带有冰齿,大齿吃冰深,小齿适合需要复杂步法的冰舞。好的冰鞋刀(blade)和鞋(skate)是分开卖的。冰刀有两个刃,分别是内刃(inside edge
2016-08-08 09:33:16
3737
原创 Nand ECC学习
Nand ECC校验和纠错原理及2.6.27内核ECC代码分析.pdf samsung_ecc_algorithm_for_256b.pdf samsung_ecc_algorithm_for_512b.pdf 内核代码已经实现了256Byte/3Byte和512Byte/3Byte ECC算法,现在芯片定义要搞204Byte/nByte,还不知道算法怎样实现。Goog
2016-08-08 09:33:13
1067
原创 模拟指令断点
思路是利用trace指令替换目标断点地址的指令,单CPU执行到目标断点地址指令的时候触发一个trace异常。在trace异常处理里面处理断点。这样模拟方法优点是可以设置多个指令断点,不需要CPU额外的支持。数据断点通常是在CPU流水线的memory access阶段实施监控,如果地址吻合则触发数据断点。这个需要CPU硬件支持,不是所有CPU都支持。更强大的当然是gdb server了。但是将gdb
2016-08-08 09:33:11
324
原创 异常捕捉与反汇编分析
MIPS Exceptions有很多种,最常见的TLB(Miss/Invalid)、unaligned access。代码中NULL指针访是最常见的问题之一,通过将0地址附近(足够大)一段地址映射为Invalid。通过NULL指针对这段内存地址访问的时候就会触发TLB Invalid Exceptions。“足够大”要多大,要视系统最大结构体偏移地址而定,通常是4KB~64KB。如果访问地址超过了
2016-08-08 09:33:08
1024
原创 MIPS架构培训之MMU原理
源自培训讲稿,并隐去公司系统软件的内容。Cache相对独立,比较容易明白。但MMU和OS关联很紧密,难度系数比Cache要大。1、为什么会有MMU a)安全性考虑: 没有利用MMU来做虚拟空间管理的系统,程序可以互相访问对方的数据和代码。随便一个程序出问题可能导致系统崩溃,特别是第三方程序。 利用MMU建立虚拟地址空间管理,每个程序(后面称之为进程)有独立的地址空间,程序之前不能
2016-08-08 09:33:05
1218
原创 MIPS CP0 Hazards问题--从Release1到Release2
关于的CP0 Hazards,官方定义是:Each instruction in the program sees the results of the previous instruction. There are some deviations to this model. These deviations are referred to as hazards.举个关中断的例子: mfc
2016-08-08 09:33:03
592
原创 MIPS架构培训之Cache原理
说明:来自培训讲稿,并隐去与公司系统软件相关部分内容。MIPS架构培训之Cache原理目的: 了解Cache原理、注意Cache一致性问题----直观影响:展示计算机系统存储层次结构图介绍局部性原理: 时间局部性:for() i 空间局部性:buf[i] buf[i+1] for (i = 0; i sum += buf[i++]; } su
2016-08-08 09:33:00
1203
原创 对付内存改写问题的银弹
内存改写问题一直是软件开发中最难搞的问题之一。在有虚拟地址空间管理的OS中,比如linux、windows等,应用程序出现内存改写最坏的情况是应用程序蹦掉而已,不会对系统造成很大危害。但是在没有虚拟地址空间管理的RTOS中,如果应用程序修改了系统核心内存整个系统就嗝屁了。如果软件工程真的有银弹,我首先要拿来对付内存改写问题。出现内存改写常见的原因有数据越界、野指针、不同类型指针之间的强制转换等。系
2016-08-08 09:32:56
690
原创 上一个十年,下一个十年
2011年的第一天宅在家看了一天《老友记》,下午一点才下去吃午饭。2010: 工作方面:完成了两款新CPU平台开发、EG系列出口网关产品线和WLAN产品线平台开发,也在2010最后的一个工作日被推荐位MIPS CPU小组的leader。应该说颇有收获,但是这么高工作强度不知道能撑几年。2011要正式带3个人了,杂七杂八的事会更多。2010是主力干活+偶尔打杂,2011将是干活+打杂并重了。按
2016-08-08 09:32:54
612
转载 设计模式中类的关系
转自博客 http://blog.youkuaiyun.com/zhengzhb/article/details/7187278 设计模式友情博客 http://blog.youkuaiyun.com/zhengzhb/article/category/926691 在java以及其他的
2016-08-08 09:32:50
278
原创 代码的抽象三原则
代码的抽象三原则 作者: 阮一峰 日期: 2013年1月31日 软件开发是"抽象化"原则(Abstraction)的一种体现。 所谓"抽象化",就是指从具体问题中,提取出具有共性的模式,再使用通用的解决方法加以处理。 开发软件的时候,一方
2016-08-08 09:32:48
589
转载 用Gvim建立IDE编程环境 (Windows篇)
原文链接:http://rokin.iteye.com/blog/475274用Gvim建立IDE编程环境 (Windows篇)博客分类: linux编程IDEWindowsvimPHP 转载自:LeeMonCC说明:本文是作者在完全按照著名的《手把手教你把Vim改装成一个IDE编程环境》一文,在Windows XP上用gvim建立IDE环境时所作的备忘。原作地址:http://blog.csdn
2016-08-08 09:32:45
469
原创 SQLite3 数据库使用
YLinux主页计算机闲情偶寄说说关于SQLite3 数据库使用by Jian Lee参考简介特点Linux 下命令行操作创建数据库SQL 指令简介SQLite 的特别用法常用命令SQLite 结构分析触发器SQLite 的 C 语言编程执行sql语句不使用回调查询数据库操作二进制参考SQLite3 使用教学SQLite 简单教程简介特点软件属于公共财(public domain),SQLite可
2016-08-08 09:32:42
882
原创 SQLITE3 使用总结
SQLITE3 使用总结2009-09-16 07:36 2624人阅读 评论(10) 收藏 举报前序:Sqlite3 的确很好用。小巧、速度快。但是因为非微软的产品,帮助文档总觉得不够。这些天再次研究它,又有一些收获,这里把我对 sqlite3 的研究列出来,以备忘记。这里要注明,我是一个跨平台专注者,并不喜欢只用 windows 平台。我以前的工作就是为 unix 平台写代码。下面我所写的东西
2016-08-08 09:32:39
1096
转载 一步成高手:终极图解内存(下篇)
http://www.qqread.com/pcbase/2007/04/c306543.html希望对大家有帮助,相信你看完就能成为高手了。 点击查看大图 DDR内存芯片的内部结构图,注意比较上文中SDRAM的结构图 这也是一颗128Mbit的内存芯片,标称规格也与前文的SDRAM一样为32×4bit。如日中天——DDR SDRAM(上)DDR SDRAM全称为Double Data Rate
2016-08-08 09:32:36
2768
转载 一步成高手:终极图解内存(上篇)
DDR基本忘光了,来个扫盲贴。http://www.qqread.com/pcbase/2007/04/c306549.html==========================《电脑高手》也都是一笔带过。作为电脑中必不可少的三大件之一(其余的两个是主板与CPU),内存是决定系统性能的关键设备之一,它就像一个临时的仓库,负责数据的中转、暂存…… 不过,虽然内存对系统性能的至关重要。作为电脑中必不
2016-08-08 09:32:33
2728
转载 Linux内部的时钟处理机制全面剖析
Linux内部的时钟处理机制全面剖析 在 Linux 操作系统中,很多活动都和时间有关,例如:进程调度和网络处理等等。所以说,了解 Linux 操作系统中的时钟处理机制有助于更好地了解 Linux 操作系统的运作方式。本文分析了 Linux 2.6.25 内核的时钟处理机制,首先介绍了在计算机系统中的一些硬件计时器,然后重点介绍了 Linux 操作系统中的硬件时钟和软件时钟的处理过程以及软件时钟的
2016-08-08 09:32:23
673
原创 C中如何调用C++函数?
C中如何调用C++函数 C中如何调用C++函数? 前阵子被问及一个在C中如何调用C++函数的问题,当时简单回答是将函数用extern "C"声明,当被问及如何将类内成员函数声明时,一时语塞,后来网上查了下,网上有一翻译C++之父的文章可以作为解答,遂拿来Mark一下。 将 C++ 函数声明为``extern "C"''(在你的 C++ 代码里做这个声明),然后调用它
2016-08-08 09:32:13
6811
1
原创 struct tvec_base_t -- data structures for dynamic timers
struct tvec_base_t -- data structures for dynamic timers Stringing together all timers in a single list would degrade system performance, because scanning a long list of timers at every
2016-08-08 09:32:11
804
转载 宏定义中的##操作符和... and _ _VA_ARGS_ _
宏定义中的##操作符和... and _ _VA_ARGS_ _1.Preprocessor Glue: The ## Operator预处理连接符:##操作符Like the # operator, the ## operator can be used in the replacement section of a function-like macro.Additionall
2016-08-08 09:32:08
476
原创 Mips cache lock
Maybe mips cache lock is not used as much as cache writeback and cache invalidate,so we need a chance to "learning through practice".In embedded system,before we have init the RAM,we have no writeable
2016-08-08 09:32:05
503
原创 soft lockup
1 Debugging Linux Kernel Lockup / Panic / OopsHere are some notes on how to debug Linux kernel lockups – both "hardlockups" and "soft lockups" – and other panic, BUG, and oopssituations. I am n
2016-08-08 09:31:55
988
原创 Linux 2.6内核中新的锁机制--RCU
Linux 2.6内核中新的锁机制--RCU杨燚 (yang.yi@bmrtech.com), 计算机科学硕士杨燚,计算机科学硕士,毕业于中科院计算技术研究所,有4年的Linux内核编程经验,目前从事嵌入式实时Linux的开发与性能测试。您可以通过yang.yi@bmrtech.com或yyang@ch.mvista.com与作者联系。 简介: 本文详细地介绍了
2016-08-08 09:31:45
657
原创 xpl同学的vfs学习笔记(下)(强烈推荐)
原文链接http://bbs.chinaunix.net/viewthread.php?tid=2054087&page=1&authorid=6105910楼发表于 2009-03-19 15:53 | 显示全部帖子mount 文件系统主要数据结构:struct namespace {
2016-08-08 09:31:42
359
原创 xpl同学的vfs学习笔记(上)(强烈推荐)
原文链接http://bbs.chinaunix.net/viewthread.php?tid=2054087&page=1&authorid=610591楼发表于 2008-05-23 16:30 | 显示全部帖子第 37 ~ 39 楼更新了mount 文件系统部分的笔记。 - 2009.03.19.------
2016-08-08 09:31:40
387
原创 关于".set push"和".set pop"
在龙芯论坛搜到的。.set Sets (and clears) various flags that affect generated code. The following table may not be a complete list.Flagnoreorder Turns off reordering of instructions. When on, t.i
2016-08-08 09:31:30
578
原创 ucos ii在spca061a单片机上移植代码
08年ucos ii在spca061a单片机上的移植代码,给个csdn下载的链接,顺便刷一下csdn的积分,嘿嘿。http://download.youkuaiyun.com/source/589173 管理员在2009年8月13日编辑了该文章文章。 -->
2016-08-08 09:31:27
413
原创 喂狗超时问题分析
一般OS都是在系统调度定时器中区喂狗。外部看门狗一般是1s左右,调度通常是n ms,因此只要系统正常跑的时候外部看门狗都不会复位。 如果程序运行过程中外部看门狗复位了,一般是关中断时间过长或者关中断后进入死循环了。 关中断时间过长:开关中断通常是调用系统的接口函数。如果是存在关中断时间比较临界的情况,可以在调用开关中断的接口中挂钩子函数,统计每次关中断时间的长度。如果中断时间超
2016-08-08 09:31:24
1970
原创 mips代码段机制保护实现--运用MMU
在传统的RTOS中,所有程序共享同一个地址空间。就是说程序可以读写内存中的任意地址,包括代码段。查bug的时候如果怀疑是程序写了代码段导致的,可以通过MMU将代码段设置为只读。 简单起见假设代码段从0x10000(64KB)开始,代码段结束地址小于16MB。通常0x10000以下地址用于捕获空指针访问异常。1.修改ld文件,使代码段16MB对齐。2.在MMU初始化的时候将前16MB
2016-08-08 09:31:21
1219
原创 天使的翅膀--BCM5300X平台调试笔记
写这篇的时候正在听范范的“天使的翅膀”,我很喜欢的歌,就用它来做标题吧。 10月20到11月19日,bcm53003平台花一个月时间终于完成了。 大概情况如下1)bootloader 排除硬件CPU大小端配置错误后Bootloader一版起机,意料之中。--- 2)nandflash驱动 bcm53003的nandflash比较bt,现在local
2016-08-08 09:31:19
1227
原创 嵌入式的HelloWorld
最简单程序是点几盏LED灯,相对于C语言的Hello World吧。程序只能用汇编写而不能用C语言写,因为内存还没有初始化堆栈不能用(也有人拿cache当ram用的,那需要写更多的汇编代码就此排除)。编译工具只需要gcc就可以,不用Keil、ADS这些IDE。IDE隐藏了链接和加载过程,直接使用gcc可以更了解linker/loader。broadcom bcm4748 demo板上有gpio1/
2016-08-08 09:31:16
789
原创 74Kc mini_boot
最近在移植bcm4748的bsp,先弄了一个mini_boot。内容大概有初始化cp0、初始化I/D cache、初始化ddr2控制器、将代码搬到内存运行、初始化堆栈指针,然后跳到内存的c程序入口、初始化串口可以从串口打印及从串口接收数据,重新写一下写Makefile和ld script。现在还要继续完成bsp,有时间再将这个mini_boot贴出来。
2016-08-08 09:31:13
366
原创 Read MIPS Run2nd MIPS cache(转)
2008.9.28Read MIPS Run2nd MIPS cache激烈一些,没有cache的MIPS就不是RISC..... MIPS reset 后cache的大部分状态都是未定义的, 这也是bootstrap需要初始化cache的原因.Cache 和cache 管理L1 cache的重要作用就是在固定的时间内完成操作以使CPU的pipeline无间歇的运转. MIPS采用哈
2016-08-08 09:31:03
1558
原创 (转)大小端和存储器对齐
我们常常看到“alignment", "endian"之类的字眼, 但很少有C语言教材提到这些概念。 实际上它们是与处理器与内存接口, 编译器类型密切相关的。考虑这样一个例子: 两个异构的CPU进行通信, 定义了这样一个结果来传递消息:struct Message{ short opcode; char subfield; long message_length;
2016-08-08 09:31:00
1082
原创 Linux内核稀奇古怪的宏
本文收集Linux内核中各种稀奇古怪的宏定义。 #define get_addr(type, member, mem_addr) (type*)(mem_addr - &(((type*)0)->member)) #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) #define list_entry
2016-08-08 09:30:57
437
原创 再读《TCP/IP详解 卷一:协议》
群读书第一个主题是:TCP/IP。第一阶段是学习协议,终于又把这套书翻了出来。大学时候省吃俭用买了这套书,结果只看完第一卷有点对不起自己。这次一定要啃下来。学习过程待续... (2009.12.08) 管理员在2009年8月13日编辑了该文章文章。 -->
2016-08-08 09:30:55
399
Programming in Lua 3rd
2016-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人