pcDuino第一个裸板程序uart0


全志A10是性能很好的国产SOC,看到这么多的A10平板就知道了。A10采用Crotex A8核心,主频达到1.2GHz,性价比极高,但网上资料很少,下面给大家分享我的A10学习日记,希望越来越多的人使用国产芯片。

我学处理器,喜欢从CPU执行的第一条指令开始,这样能够彻底搞清楚CPU的启动过程,为后面的u-boot以及内核移植做准备。下面是我写的第一个A10裸板串口实验,给大家分享写的全过程:

开发环境:

Ubuntu 10.04.4

pcDuino

arm-none-linux-gnueabi-gcc(arm-2009q3)

首先是UARTO实验的第一个汇编文件start.S:

.global _start
_start:
ldr sp, =0x00007f00 //条用C程序之前设置好堆栈
b main

汇编很头痛,就先写这几句吧很简单,接下来都是C程序。

文件main.c:

#include "clock.h"
#include "uart.h"
#include "lib.h"
#define PB_CFG2          (*(volatile unsigned int *)0x01c2082c)

void gpio_init()
{
  /*bit[30:28]:PB23_SELECT 010:UART0_RX
  *bit[26:24]:PB22_SELECT 010:UART0_TX
  */
  PB_CFG2 |= ((0x2<<24)|(0x2<<28));
}
int main(void)
{
char c;
clock_init(); /* 初始化时钟 */
gpio_init();
uart_init(); /* 初始化UART0 */

uart_putchar('O');
uart_putchar('K');
while (1)
{
    do {
c = uart_getchar();
if (c == '\n' || c == '\r')
 {
  putchar('\n');
  //putchar('\r');
 }
else
 {
  putchar(c);
 }
      } while (c == '\n' || c == '\r');
}
return 0;
}

  • 1
  • 2
  • 3
  • 下一页

相关内容