上一页 1 2 3 4 5 6 7 8 ··· 11 下一页
摘要: bochs 2.3.5源码编译网上编译bochs的资料非常多,基本的问题都有解决方案,我重点讲不常见的问题。基本安装步骤tar vxzf bochs-2.3.5.tar.gzcd bochs-2.3.5sudo ./configure --enable-debugger --enable-disasm --enable-x86-64 LDFLAGS=-L/usr/lib/i386-linux-gnusudo make sudo make install bochs是c++实现的,因此其依赖环境会有build-esstianl g++ devlib等,需事先安装环境sudo apt-get in 阅读全文
posted @ 2014-01-15 12:35 Pavkoo 阅读(817) 评论(1) 推荐(0) 编辑
摘要: 标签和变量是一样的, 变量名代表了变量的地址,而[标签]表示值$表示当前行呗汇编后的地址$$表示 一个节被汇编后的起始地址ret和retf指令ret 用栈中数据改IP内容,近转移retf用栈中数据同时改CS,IP,远转移用汇编解释ret-> pop ipretf-> pop ip pop cs编写汇编程序的思维方式:汇编程序是由段构成,所以编写汇编代码要摒弃高级语言(C语言)的程序函数构成。C语言将程序分解为若干函数汇编语言将程序分解为若干段,段与段之间通过跳转实现(函数的实现其实就是CALL,JMP等跳转功能)高效交换元素PUSH BUF1PUSH BUF2POP BUF1POP 阅读全文
posted @ 2014-01-11 16:04 Pavkoo 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 简单说来,该指令用来修正该指令以后出现的(变量/标志的)内存地址,也就是说如果有ORG 0x12345h,那么在该指令以后的变量的地址将被修正为0x12345+old_addr。对于DOS中的COM文件,在被DOS装载进内存后,系统会在内存的CS:0000 – CS:0100区域创建一个PSP,这里存放了一些系统所需的信息,比如通过命令行所传递的参数等,COM文件的代码将被装载到CS:0100 – CS:XXXX的内存区域,所以说如果COM代码中不通过使用ORG 100h来进行修正的话,该段中的变量将不能被正确访问,这时,对改变量的访问将导致PSP中的数据被访问了,从而得不到预期的结果。对于E 阅读全文
posted @ 2014-01-10 15:55 Pavkoo 阅读(1310) 评论(0) 推荐(0) 编辑
摘要: 从编译的过程可以看出,面对编译这样的难题,给出的解决办法是将复杂问题化解为若干小步骤的小问题,然后逐一解决小问题 人从小到大,从模糊到思路清晰,似乎走的是一个模式化思维过程,当人脑中的模式越多,在问题面前就大脑就能够提供越多的选择。按照正确的模式走下去,就能够,或者不能够解决问题,也就是说,人抉择的过程就是人将现实环境抽象为某些条件,以符合某种模式的思维过程。 模式即一个问题的解决方法。所谓问题... 阅读全文
posted @ 2013-12-27 11:38 Pavkoo 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 创业公式: 1.搭建原型 -- 初期产品 2.上线运营 -- 忽略bug 3.收集反馈 -- make something people want 4.调整产品 -- 获取用户所需 5.成长壮大 创业公司快速发布产品。而不是一开始就精益求精的追求完美 任何一种艺术,不管他是否重要,如果你想在该领域出类拔萃,就必须全身心投入 书呆子被教导追求正确到答案,而受欢迎的小孩被教导讨人喜欢 在一个人产生良... 阅读全文
posted @ 2013-12-24 16:06 Pavkoo 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 在linux2.6 的设备和设备驱动模型构架中,所有的外部设备和驱动程序都挂在总线上 ,总线分为(usb -- USB设备,PCI -- PCI 设备 platform -- 直接和处理器进行通信的设备) 一个设备和一个设备驱动程序一一对应 阅读全文
posted @ 2013-12-17 20:30 Pavkoo 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 对于那些需要进程独占的设备,需要使用linux提供的阻塞编程。步骤如下: 1.在设备驱动程序中定义该设备的进程等待列多,并将其初始化 static wait_queue_head_t wait_queue; init_waitqueue_head(&wait_queue); 2.在设备驱动程序的读操作中,调用函数wait_event 实现阻塞访问 int mixled_read(struct ... 阅读全文
posted @ 2013-12-17 19:51 Pavkoo 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 占空比是接通时间与周期之比冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同占空比:就是输出的PWM中,高电平保持的时间与该PWM的时钟周期的时间之比,如一个PWM的频率是1000Hz,那么它的时钟周期就是1ms,就是1000us,如果高电平出现的时间是200us,那么低电平的时间肯定是800us,那么占空比就是200:1000,也就是说PWM的占空比就是1:5。分辨率:也就是占空比最小能达到多少,如8位的PWM,理论的分辨率就是1:255(单斜率),16位的的PWM理论就是1:65535(单斜率)。频率就是这样的:如16位的PWM,它的分辨率达到了1:65535,要达到这个分辨 阅读全文
posted @ 2013-12-16 16:48 Pavkoo 阅读(1287) 评论(0) 推荐(0) 编辑
摘要: linux内核为字符设备的驱动程序设计,提供了一些数据结构,和函数,供开发人员调用,将设备驱动程序注册到内核去。现代操作系统几乎都不直接和硬件通信,而是通过定义的接口,是硬件厂商自己来开发符合标准某个操作系统的驱动程序。 linux内核有一个struct cdev结构体列表记录所有的字符设备基本信息 cdev有一个struct file_operations 用来提供所有硬件设备的操作接口。开发人... 阅读全文
posted @ 2013-12-07 11:40 Pavkoo 阅读(192) 评论(0) 推荐(0) 编辑
摘要: linux内核是一种可以被内核动态加载(insmode)和卸载(rmmod)的可执行二进制代码 最简单的内核 #include #include //用来实现模块的初始化 static int_init hellomodule_init(void) { printk(“Hello World module init 9k!\n”); return 0; } //用来实现模块的退出 stati... 阅读全文
posted @ 2013-12-07 10:52 Pavkoo 阅读(748) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页