全志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;
}