s5pc100串口裸板程序uart0

本文档详细介绍了如何在S5PC100芯片上编写并测试UART0串口程序。首先,通过源代码(start.S, clock.s, main.c, uart.c, uart.h, Makefile)的编译过程展示了裸板程序的构建。接着,使用U-Boot烧写程序到内存并成功运行。最后,进行了串口通信的测试,确认程序运行正常。" 40378265,1358276,Perl 中的HASH数组详解,"['Perl编程', '数据结构', '关联数组']
摘要由CSDN通过智能技术生成
开发环境
系统:ubuntu 10.04.4
单板:s5pc100
编译器:arm-linux-gcc-4.3.2
搭建开发环境详见ubuntu 10.04.4开发环境配置。
目标:实现s5pc100 uart0 显示任意输入字符

一、编写源代码

根据s5pc100手册编写代码,包括源文件start.S clock.s  main.c uart.c uart.h Makefile

文件start.s:

.global _start

_start:

	ldr sp, =0xD0030000
	bl clock_init
	b main
文件clock.s:

.globl clock_init

clock_init:
	
	/* 1.设置LOCK_TIME */
	ldr r0, =0xe0100000  	//CLOCK_POWER_BASE
	mov r1, #0xe00
	orr r1, r1, #0x10
	str r1, [r0, #0x0]		/* APLL_LOCK */
	str r1, [r0, #0x4]	 /* MPLL_LOCK */
	str r1, [r0, #0x8]	 /* EPLL_LOCK */
	str r1, [r0, #0x0c]	//HPLL_LOCK

	
//#define OTHERS		0x7e00f900
//	@ set async mode  /* 当CPU时钟 != HCLK时,要设为异步模式 */
//	ldr r0, =OTHERS
//	ldr r1, [r0]
//	bic r1, r1, #0xc0	/* 1100,0000 */		
//	str r1, [r0]

//loop1:				/* 等待,直到CPU进入异步模式 */
//	ldr r0, =OTHERS
//	ldr r1, [r0]
//	and r1, r1, #0xf00					
//	cmp r1, #0
//	bne loop1		
	
	/* SYNC667 */
	/* MISC_CON[19] = 0 */

//#define ARM_RATIO    0   /* ARMCLK = DOUTAPLL / (ARM_RATIO + 1)    */
//#define HCLKX2_RATIO 1   /* HCLKX2 = HCLKX2IN / (HCLKX2_RATIO + 1) */
//#define HCLK_RATIO   1   /* HCLK = HCLKX2 / (HCLK_RATIO + 1)       */
//#define PCLK_RATIO   3   /* PCLK   = HCLKX2 / (PCLK_RATIO + 1)     */
//#define MPLL_RATIO   0   /* DOUTMPLL = MOUTMPLL / (MPLL_RATIO + 1)     */
//	ldr r0, =0x7E00F020  /* CLK_DIV0 */
//	ldr r1, =(ARM_RATIO) | (MPLL_RATIO << 4) | (HCLK_RATIO << 8) | (HCLKX2_RATIO << 9) | (PCLK_//RATIO << 12)
//	str r1, [r0]
/* CLK_DIV0 */
#define APLL_RATIO	0
#define ARM_RATIO	4
#define D0_BUS_RATIO	8
#define PCLKD0_RATIO	12
#define SECSS_RATIO	16
	
	ldr r1, [r0, #0x300]	//CLK_DIV0 Clock divider
	ldr r2, =0x3fff
	bic r1, r1, r2

	ldr r2, =(1<<APLL_RATIO) | (0<<ARM_RATIO) | (4<<D0_BUS_RATIO) | (1<<PCLKD0_RATIO) | (1<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值