摘要:
对于一般的嵌入式系统来讲,考虑到系统成本,运行速度等因素,往往联合使用好几种存储器件。在下面讲到的例子中,是我在开发中用到的一个 ARM9EJ 的处理器,系统中采用了SDRAM, ROM, Nand FLASH, ITCM ,DTCM 等。 SDRAM: 程序正常运行时所在的存储器, 物理地址 0x24000000 - 0x24800000 (以8M 为例); ROM: 复位后, ARM 从 ROM 启动, ROM 是只读的,出厂时就烧好了,不可更改,正常运行时,物理地址: 0x2C000000 - 0x2C006000 (24KB); Nand FLASH: 外接存储器件,正常运行的程序会. 阅读全文
摘要:
在ourdev上看到一个帖子,深有感触,cpoy下来。不知道咋回事,2008年毕业的时候只想三年月薪过万,2009后来想有100平米的房子,现在开始想住复式楼,并且有一辆车开开,即使是QQ。嘿嘿。 最近一直迷茫,不知道将来的路怎么走。毕业第一年还是蛮单纯,学了点基础,但是越接触现实的社会发现这个世界真TMD疯狂,发现技术完全不是大学想的那回事。高高的房价让人郁闷,月薪10K,啥也不是;打工还能有多少上涨空间?看看周围的人,看看在公司居功至伟的总监,月薪还不到15K,忙的像条狗,而年华易逝,头发开始脱落。 一次和总监出差,谈起工资的事情,他知道我已经有了想法,就不停地安慰我,他说每个老板都是这样 阅读全文
摘要:
Python关于设计模式的书比较少,至少中文版比较少。网上有几篇讲Python设计模式的文章,但还太少。因此我在这里再写几篇。 为了区别与其他关于Python设计模式的文章,因此本系列就叫"良少版Python设计模式"。以免毁了其他关于Python设计模式作者的清誉啦:) 工厂方法模式 classA(object): def__init__(self): print"A new" object.__init__(self) classB(object): def__init__(self): print"B new" o... 阅读全文
摘要:
己从事嵌入式系统开发有好多年了,在此想与大家分享我对于嵌入式开发的一点心得与体会。 先大致说一说我的工作经历。97年毕业后做了两年的电气与电子设计与开发,这一时期,我做过电路原理图的设计和PCB板的设计。从99年开始,我进入了软件行业。第一次做嵌入式开发是在2000年,在随后的六年多的时间里,我差不多做过整个操作系统的组件。一开始用的是uC/OSRTOS,熟悉它的人知道,它是一个微内核,提供了任务的调度、Mutex、Semaphore等基本的功能,但是像TCP协议栈、文件系统、堆管理(指malloc/和free)这些功能都没有,当然也包括没有相应的硬件驱动模块,如PCI、串口、I2C、IDE硬 阅读全文
摘要:
自己在看globalfifo驱动的时候看得不是很明白,有些地方没搞懂,今天有幸看到论坛上一个帖子,把我没搞懂的都搞懂了,摘录下来供参考!=============================我是分割线==============================LZ:/*globalfifo读函数*/static ssize_t globalfifo_read(struct file *filp, char __user *buf, size_t count,loff_t *ppos){int ret;struct globalfifo_dev *dev = filp->private 阅读全文
摘要:
本文作者(院 浩),请您在阅读本文时尊重作者版权。[摘要]Linux是一个多用户多任务的操作系统,Linux中实现了对多个进程公平、高效的调度,并不是采用单一的调度策略,而是几种调度策略有机地综合应用。[关键词] 进程调度 优先级 时间片轮转 实时进程在任何一种操作系统中,进程调度一直是一个核心问题,进程调度策略的选择对整个系统性能有至关重要的影响,一个好的调度算法应该考虑很多方面:公平、有效、响应时间、周转时间、系统吞吐量等等,但这些因素之间又是相互矛盾的,最终的取舍根据系统要达到的目标而定,本文以Linux操作系统为例,分析其进程调度策略,以期对进程调度过程有更深层次的认识。一、 Linu 阅读全文
摘要:
进程调度依据 调度程序运行时,要在所有可运行状态的进程中选择最值得运行的进程投入运行。选择进程的依据是什么呢?在每个进程的task_struct结构中有以下四项:policy、priority、counter、rt_priority。这四项是选择进程的依据。其中,policy是进程的调度策略,用来区分实时进程和普通进程,实时进程优先于普通进程运行;priority是进程(包括实时和普通)的静态优先级;counter是进程剩余的时间片,它的起始值就是priority的值;由于counter在后面计算一个处于可运行状态的进程值得运行的程度goodness时起重要作用,因此,counter也可以.. 阅读全文
摘要:
Linux使用的是基于运行级(run-levels)概念的称为SysVinit的专用启动工具。它在不同的系统上可能是完全不一样的, 所以不能认为一个脚本在某个Linux发行版上工作正常。 SysVinit(从现在开始我们称之为"init")以运行级的模式来工作,一般有7(从0到6)个运行级(实际上可以有更多的运行级,但都是用于特殊情况而且一般使用不到。参见 init(8)以获得更多信息),每个运行级对应于一套设定好的任务,当启动一个运行级的时候, 计算机就需要执行相应的任务。默认的运行级是 3,下面是对不同运行级的描述:0:关闭计算机1:单用户模式2:无网络多用户模式3:. 阅读全文
摘要:
qemu-nbd在有的系统上叫kvm-nbd,qemu-nbd-xen等。基本上都一样啦。 用qemu-nbd实现mount虚拟硬盘到Host上的功能,需要这么做: rmmod nbd modprobenbd max_part=8 因为默认,nbd的增加分区的功能是关闭的,需要指定max_part这个参数。这个参数指定了一个nbd设备可以有多少个分区。 qemu-nbd --connect=/dev/nbd0 ./testxp.img 现在已经在localhost的1024端口上安装上该设备了。 ls/dev/ | grep nbdnbd0nbd0p1 上面这样... 阅读全文
摘要:
大排挡老板为保护陌生女子不被骚扰杀人http://msn.ynet.com/view.jsp?oid=68174674&pageno=1 为勇士祝福,愿好人一生平安,无病无灾! 应该把那五个人全宰了!杀一个是杀,杀五个也是杀! 人渣早死早超生,也是功德一件! 阅读全文