在上一节中,已经对bsp层的最开头,也就是start.s进行了分析。然后就要开始系统驱动开发的下一个环节了,在任何外设的适配中,我们都离不开调试,那么我们就需要“一张告诉我们看板卡程序运行状态的嘴巴”,所谓“嘴巴”就是我们常用的打印(printk或printf)。在我们的系统中,在中断配置成功之前,我们需要的嘴巴是“printk”。该函数是通过将调试串口轮询打通,然后再与上层库结合而成,如此printk才可以通过控制台告诉我们程序当前状态了。
结合以上背景,在我们目前驱动开发过程,应当现实调试串口的轮询输出。不同平台中有不同的串口轮询输出的代码,我们这里代码适用于ppc8247。
此处串口初始化接口为:sysSerialHwInit();
轮询输出接口为:printk_debug_outchar(char c);
将串口轮询输出挂接到printk上的接口为:printk_init(printk_debug_outchar);
串口初始化代码需要多多参考MPC8272RM手册,对各个寄存器参数进行配置,来调试代码,其中的具体内容就不进行分析了。
串口初始化完成后调试轮询接口,使得该接口可以使用,接下来将轮询接口通过printk_init进行挂接,使得printk可以使用。