一点进展

006/6/27 22:54:03
  这段时间工作比较忙,项目进展比较缓慢,主要是在gdb 的 remote target上增加了些命令,基本框架已经完工,剩下的工作就是逐步添加命令了,我觉得添加了这些命令以后,开发模拟器就很方便了.以前在开发模拟器的时 候,需要开两个gdb,一个cross gdb用于调试内核或bootload,另一个host gdb用于调试模拟器本身,看模拟器解释指令对不对,很麻烦,现在在cross gdb里面增加了指令以后,就可以不需要host gdb了,直接在cross gdb里面给simbcm发送消息,查看simbcm内部状态.
比如,我想查看机器1的uart 控制器0的mod_reg_1的bit_per_char位,我就可以在cross gdb下执行
(gdb) show simbcm mach_1 uart_0 mod_reg_1 bit_per_char

就可以显示当前的值了,

我还可以在调试过程中设置simbcm内部状态,
(gdb) set simbcm mach_1 uart_0 mode_reg_1 bit_per_char 8

还比如 如果发现simbcm机器 0上的网卡不能接受或发送包,猜想是否没有执行网卡的回调函数,那么我就可以执行
(gdb) show simbcm mach_0 event_callback
这样就打印出当前的回调队列的所有节点.

理论上讲,我可以通过cross gdb查看或设置simbcm的任何状态(只要注册相应的命令),这样的话,开发模拟器和内核都非常方便了,但工作量也就可想而知了:(,不过我觉得这个可以作为simbcm的一个很突出的特性.

另外,现在在逐步统一simbcm里面的数据结构,我觉得自己的数据结构库的界面比较友好一点.现在的主要精力还是放在易用性上面,不管是使用还是开发.
posted @ 2011-04-05 13:45  konggang  阅读(210)  评论(0编辑  收藏  举报