新唐官方提供了Direct-register-access方法也就是寄存器直接赋值的方法驱动UART0的例程,那个例程可以在Keil for ARM中直接编译,也可直接运行。作者把例程移植到EmBITZ1.0中,并成功运行,主要修改为:
1)修改了启动文件startup.s,按照新唐官方文件增加了M0516外部中断表
2)修改了配置文件gcc_arm.ld,
3)定义了BaudRate宏,可以直接定义和修改波特率
4)移植了来自emIDE的syscalls.c,重定向了UART0,实现了串口0的输入和输出交互
5)在UART.h中增加了Send_sting_to_pc()函数,并在UART.c中通过反复调用Send_char_to_pc()实现了字符串的输出。在无格式输出时,Send_sting_to_pc()函数可直接替换printf()函数。
如何修改配置文件和启动文件,如何建立工程,如何增加新唐ARM,请见作者其他技术帖子。 |