原创 ARM调试日记

2008-8-29 22:12 2740 9 9 分类: MCU/ 嵌入式

调试日记:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />



1.KEIL中选择编译器, KEIL目录下的BLINKY的EXAMPLE,重新安装MDK后STARTUP.S 文件不能编译,并且TARGET设置也不一样.经过比较,发现在这里可以改变.


右键点TARGET,选MANAGE COMPONENTS





可以看到,ARM TOOL下有三个编译工具可选择.MDK是REALVIEW, KEIL目录下DEFAULT是用CARM, 另外还有一个是GUN.



2.关于LPC2103的改变系统时钟频率后,串口不能正常输出的问题.


在调试LPC2103的项目时,原来用11059200, 缺省的STARTUP.S设置PLL


PLL_SETUP       EQU     1


PLLCFG_Val      EQU     0x00000023


也就是4倍频, 后改为5倍频, 


PLLCFG_Val      EQU     0x00000024


发现串口不能正常打印输出.




经过调试,需要做以下修改.



1) 定义下面的常量



/* System configuration .Fosc、Fcclk、Fcco、Fpclk must be defined */


/* 系统设置, Fosc、Fcclk、Fcco、Fpclk必须定义*/


#define Fosc            11059200                    //Crystal frequence,10MHz~25MHz,should be the same as actual status. 


    //应当与实际一至晶振频率,10MHz~25MHz,应当与实际一至


#define Fcclk           (Fosc * 5)                  //System frequence,should be (1~32)multiples of Fosc,and should be equal or less  than 60MHz. 


    //系统频率,必须为Fosc的整数倍(1~32),且<=60MHZ


#define Fcco            (Fcclk * 4)                 //CCO frequence,should be 2、4、8、16 multiples of Fcclk, ranged from 156MHz to 320MHz. 


    //CCO频率,必须为Fcclk的2、4、8、16倍,范围为156MHz~320MHz


#define Fpclk           ((Fcclk / 4) * 4)             //VPB clock frequence , must be 1、2、4 multiples of (Fcclk / 4).


    //VPB时钟频率,只能为(Fcclk / 4)的1、2、4倍



2) 初始化UART



void Init_Uart0(uint32 bps)


{


//


// Initialize UART 1 function


// 


uint16 Fdiv;



//PINSEL0 = (PINSEL0 & 0xfffffff0) | 0x05;    /* Select the pins for Uart 选择管脚为UART0 */



U0LCR = 0x83;                               /* Enable to access the frequenc regecter 允许访问分频因子寄存器 */


Fdiv = (Fpclk / 16) / bps;                  /* Set the baudrate设置波特率 */


率 */


U0DLM = Fdiv / 256;


U0DLL = Fdiv % 256;


U0LCR = 0x03;                               /* Disable to access the frequenc regecter 禁止访问分频因子寄存器 */



/* set to 8,1,n 且设置为8,1,n */


//U0IER = 0x00;                               /* Disable interrupt禁止中断 */


//U0FCR = 0x07;                               /* initial FIFO 初始化FIFO */


}



3) 设定VPBDIV的值


在STARTUP.S文件中需要改变VPBDIV的值.


VPBDIV_SETUP    EQU     1


VPBDIV_Val      EQU     0x00000001



VPBDIV 


 00,   Fpclk = ((Fcclk / 4) * 1)


 01,   Fpclk = ((Fcclk / 4) * 4)


 02,   Fpclk = ((Fcclk / 4) * 2)




3.以前用EASYJTAG调试的程序发现串口不能正常工作,用示波器观察发现TXD1 PIN上并没有输出. 后来发现, 在AXD中当前的processor是LPC2104,但实际的开发板上是LPC2210




修改后正常.

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条