歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> pcDuino第一個裸板程序uart0

pcDuino第一個裸板程序uart0

日期:2017/3/1 9:57:54   编辑:Linux編程

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

Copyright © Linux教程網 All Rights Reserved