|
我其实一直想理解从cpu到操作系统,再到应用程序间的关系(当然是数字部分)
想了下,大致要学这么些东西
知识储备:c语言(谭浩强的)、数电(康华光的)、verilog(夏宇闻的)、数字集成电路设计(拉贝的)
然后就是学习了,先是FPGA 的相关知识,再是学习自己写一个小的cpu,然后剖析开源的cpu如51等。
再就是软件部分了,自己动手写一个操作系统(思考其与底层的关系),了解常见的开源的操作系统(uclinux、linux等),尝试了解编译器的原理(让编译器对自己设计的cpu做优化),了解操作系统的API,尝试做应用层的开发。
拉拉杂杂一堆,每一个展开学通都不得了!
顺便说说模拟部分:
模电(康华光的),晶体管原理(可以看看,理解更透彻,(甚至可以去了解些半导体物理的知识)),cmos模拟集成电路设计(拉扎维的)
资料还是蛮多的,自己也很想把这一套都学会。但是,时间有限,能力有限。意志力也不行。唉!