上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 17 下一页
摘要: 参考:http://blog.csdn.net/haozi_1989/article/details/6111770在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。 ①、HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③、LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率... 阅读全文
posted @ 2013-11-13 09:44 在于思考 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 1. 构造调试环境由于bochs内建调试功能, 且支持gdb, 用它调试内核会很方便.(文章中大部分命令的运行需要root权限,以sudo方式运行)1.1 构建磁盘镜像Shell代码dd if=/dev/zero of=hd0.img count=$((63*16*100))用这个命令可以构建一个50MB左右的磁盘镜像, 输出结果如下:100800+0 records in100800+0 records out51609600 bytes (52 MB) copied, 0.734578 s, 70.3 MB/s注意count必须为63*16的倍数, 否则bochs识别硬盘会有问题.1.2 阅读全文
posted @ 2013-11-04 16:20 在于思考 阅读(1090) 评论(0) 推荐(0) 编辑
摘要: 一、linux中的每cpu变量 看linux内核代码的时候,会发现大量的per_cpu(name, cpu),get_cpu_var(name)等出现cpu字眼的语句。从语句的意思可以看出是要使用与当前cpu相关的一个变量,不过查看这个变量的定义,总是有这样一个宏:DEFINE_PER_CPU(type, name),将这个宏展开成下面的语句: __attribute__((__section__(".data.percpu"))) __typeof__(type) per_cpu__##name,这个语句就是在.data.percpu段中定义type类型的per_cpu# 阅读全文
posted @ 2013-11-03 15:20 在于思考 阅读(3620) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/xiehy/archive/2010/02/04/1663825.html优先级运算符含义要求运算对象的个数结合方向1()[]->.圆括号下标运算符指向结构体成员运算符结构体成员运算符自左至右2!逻辑非运算符1(单目运算符)自右至左~按位取反运算符++自增运算符--自减运算符-负号运算符(类型)类型转换运算符*指针运算符&地址与运算符sizeof长度运算符3*/%乘法运算符除法运算符求余运算符2(双目运算符)自左至右4+-加法运算符减法运算符2(双目运算符)自左至右5>左移运算符右移运算符2(双目运算符)6>=关系运 阅读全文
posted @ 2013-11-01 19:30 在于思考 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 接触到打补丁还是在下linux内核的时候,在linux内核下载资源的网站上提供了相对应前一个版本的补丁下载,这样如果下载了前一个版本,要更新到当前版本,不用再把整个的内核都下载下来,只要下载当前版本相对于前一个版本的补丁就可以了,这样既节约了时间也节约了带宽。本文先介绍了怎样给linux内核打补丁,然后介绍怎样制作自己的补丁文件,并根据补丁文件给文件打补丁。一、 给linux内核打补丁 给linux内核打补丁首先要明白每个新版本的补丁都是基于某个稳定版做的,所以我们先要理解linux内核的版本号代表的意思: Linux内核版本有两种:稳定版和开发版 ,Linux内核版本号由3组数字组成... 阅读全文
posted @ 2013-10-30 18:45 在于思考 阅读(1817) 评论(0) 推荐(0) 编辑
摘要: 内核模块是Linux内核向外部提供的一个插口,其全称为动态可加载内核模块(Loadable Kernel Module,LKM),我们简称为模块。Linux内核之所以提供模块机制,是因为它本身是一个单内核(monolithic kernel)。单内核的最大优点是效率高,因为所有的内容都集成在一起,但其缺点是可扩展性和可维护性相对较差,模块机制就是为了弥补这一缺陷。很多驱动程序都以模块的形式存在,用户可以有选择的加载需要的驱动程序。一、什么是模块 模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。它在运行时被链接到内核作为内核的一部分在内核空间运行,这与运行在用户空间的进程是不同... 阅读全文
posted @ 2013-10-28 17:21 在于思考 阅读(2374) 评论(0) 推荐(1) 编辑
摘要: mt(/usr/sbin/mt)说明:磁带控制(magnetictapecontrol),mt传送命令到磁带驱动器.如果磁带名没有指定,环境变量磁带被使用.如果磁带不存在,mt使用设备/dev/rmt/0n命令格式:mt[-ftapename]command...[count]选项:-ftanename指定原始磁带设备操作:fsf向前空间越过计数EOF标记,磁带的位置在第一个文件的数据块fsr向前空前越过计数纪录bsf反向空间越过计数EOF标记,磁带位置在磁带开始部分的EOF标记常用命令:rewind倒带offline,rewoffl倒带并且,如果适当的,通过卸载磁带把驱动器部件off-lin 阅读全文
posted @ 2013-10-23 21:04 在于思考 阅读(673) 评论(0) 推荐(0) 编辑
摘要: 项目需要用到磁带库,先装个虚拟磁带库mhvtl来模拟下。1 下载源码 从网站https://sites.google.com/site/linuxvtl2/home#mhvtl-download下载最新版的mhvtl,我下的是最新的mhvtl-2013-10-20.tgz版本。2 确保内核版本的一致性 确保你的内核开发包和你系统正在运行的内核是一个版本的,因为mhvtl有会编译它编写的一个内核模块,如果内核开发包和你系统正在运行的内核不是一个版本的话,在安装mhvtl中的内核模块的时候是加载不到内核中的,虽然可以通过源码中的include/linux/vermagic.h中的VERMA... 阅读全文
posted @ 2013-10-23 20:59 在于思考 阅读(1626) 评论(0) 推荐(0) 编辑
摘要: 看了《深入理解linux内核》的中断与异常,简单总结了下,如果有错误,望指正! 一 什么是中断和异常 异常又叫同步中断,是当指令执行时由cpu控制单元产生的,之所以称之为异常,是因为只有在一条指令结束之后才发出中断(程序执行异常或者系统调用)。 中断又叫异步中断,是由其他硬件设备依照cpu时钟信号随 阅读全文
posted @ 2013-10-21 17:16 在于思考 阅读(4773) 评论(4) 推荐(1) 编辑
摘要: 转自:http://heroxx.blog.163.com/blog/static/5423580201072821026416/链接定位是系统级软件开发过程中必不可少的一部分,嵌入式软件开发均属于系统级开发,绝大部分嵌入式软件都涉及到链接定位脚本文件;链接定位脚本使得我们的目标代码组织更加灵活.1)链接定位脚本文件说明链接定位过程一般由链接器根据链接定位脚本完成,比较简单的系统可以通过设置链接器开关选项取代链接定位脚本;链接定位的关键是链接定位脚本的编写.我们从典型的目标文件结构开始,来介绍链接定位脚本文件的编写.下面是该系统一个目标文件的典型组织:其中第二栏开始分别展示了该文件各个段(Se 阅读全文
posted @ 2013-10-20 17:39 在于思考 阅读(1331) 评论(0) 推荐(1) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 17 下一页