MIPS BSP DIARY
9.2
浏览完文档《BCM5836 vxWorks BSP guide for TP-LINK》,并且做了相应的笔记,关键名词的查找,体系结构。剩下FAQ没有浏览。
9.3
完成代码结构的分析,并且做了函数调用表,主要参考《BCM5836 vxWorks BSP User's Guide》的Section 2 BCM5836 vxWorks BSP Source Files
计划下一步的重点是Section 3 Boot Sequences。这里需要做详细的阅读,包括代码。在开始工作之前,计划先学 习一下MIPS的指令集和汇编语法。
9.6
了解了mips的指令集以及汇编语法,重点分析的是汇编代码向C函数跳转的过程。
9.7 9.8
看了mips architecture的寻址模式,基本的地址空间。 掌握了running address & compiling address 并且就其中的romStart()函数的调用过程进行了仔细分析。
9.9
详细了解了整个boot rom的启动过程,从flash执行ram执行,从拷贝到解压缩,然后到一些基本驱动的加载,终端 的建立等等,重点是usrInit()函数和usrRoot()函数。阅读了部分代码,明天需要有针对性的阅读部分代码。并且 将boot rom和vxWorks 的memory layout绘制成图。
10.19
bootInit.c文件的romStart()函数中拷贝部分的实现 bootInit.c文件的romStart()函数中解压缩部分的实现 以及这其中执行地址,拷贝的源地址,目的地址,解压缩的源地址和目的地址都已经基本上清晰,下段时间整理成 文档,能够详尽的描述这个拷贝过程。
开始对起电的汇编代码romInit.s进行分析,最好弄明白其中的cache和memory的初始化。
10.22
基本完成romInit.s代码的跟踪和分析。后期需要进一步研究的部分有: 1 memory controler 的NCDL部分 2 为什么需要在这里将flash中的3M空间拷贝到内存? 对soc的地址空间映射,MIPS架构的地址空间映射的区别和联系有了深入的了解。
开始对usrInit()过程进行分析,第一步可以比较粗略。重点是cache的部分。
10.27
基本上完成了usrInit()代码的分析过程。并且对其中的cache模块的工作机制进行了学习。
下一步就是代码的修改和简化。目的是实现最简化的bcm5836 bootrom。这个方面还有些不确定的因素:是要实现功能的最简化呢(基本上不删减代码,在原来的基础上通过宏来取舍),还是代码的简化(例如删除带部分的宏和调试代码)。或者是两者的结合。
在完成上述任务的同时,带启动过程研究文档进行进一步的撰写。
1.1
完成了romInit.s文件和bootInit.c文件,也就是romInit()函数和romStart()函数的修改和烧写。修改了解压缩的 起始地址从flash中转移到了ram中,并且能够正常启动。 今天的工作算是成功的。 下一步就是usrInit()函数中各种模块的配置,也是完成最简化的bootrom的重点。
今天遇到的一个问题就是Makefile文件中的all文件夹的问题。现在还是使用默认的变量CONFIG_ALL。关于这个问题,以后得注意。
1.2
在完成usrStart()函数文档的过程中,对发现的几个问题做简要记录以备忘: 1 cache的初始化部分需要认真研究,包括在romInit()中的初始化 2 做最简化的BSP的重点应该在vxWorks内核启动之后的根任务usrRoot()中进行。这其中有众多驱动的安装。 3 对可执行文件中的data section,gp,bss段清零等几个知识点需要重点找资料了解。
11.4
今天终于开始认真看驱动部分的知识,主要涉及到PCI驱动,网络驱动,cache驱动,flash驱动等等。这方面可能会涉及到很多关于操作系统的知识,自己当补习。 然后就是以前虽然总觉得驱动很神奇,了解过一些linux驱动开发的知识。现在当认真体会,思考驱动开发的本质,能够做到举一反三。
今天初步了解了网络驱动的加载,启动过程,以其怎么和vxWorks协同工作。
11.11
今天在各位师傅的帮助下,网络问题有了一个初步的解决,描述如下:
在源文件(注意,是源文件)的基础上,修改et_vx.c文件中的et_send()函数,其实就是数据包的构建函数。为什么要这样做呢?原来为什么没有能够发送出包呢?
自己几天前曾在蔡师傅的提示下修改了这个地方,但是导致在muxLibInit()处就死机了,这其中的原委是什么呢?
现在还有一个问题是,自己修改过的代码在usrNetWorkInit()函数中return ERROR,启动配置文件的修改到底产生了什么问题才导致如此呢?
早些是否跟踪的MAC地址的问题到底是怎么回事,为什么现在不需要修改MAC地址就能够接收和发送数据包呢?
为什么还是无法通过ftp加载呢?同时,需要学习其中的调试技巧,在何处以何种方式打印错误信息。
11.12
今天开始,要准备答辩的相关资料。其实目的只有一个,那就是将前段时间学的东西进行总结归纳,然后就是和老员工交流,找出可能需要在认真研究,但是忽略了的知识点。同时,对某些问题,可以有一个更加系统全面的了解也是这一阶段的工作。