OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » LPC2132,LPC2100 急救:谁有LPC2132启动源代码发给我一份,用

共2条 1/1 1 跳转至

LPC2132,LPC2100 急救:谁有LPC2132启动源代码发给我一份,用LPC2100模板不能中断

院士
2006-12-22 22:43:00    评分
LPC2132,LPC2100 急救:谁有LPC2132启动源代码发给我一份,用LPC2100模板不能中断



关键词: LPC2132     LPC2100     急救     谁有     启动         

院士
2006-12-22 22:43:00    评分
2楼
问 谁有LPC2132的启动源代码发给我一份,我急着用,先谢谢!
另外有几个问题想请教大家:
1、我现用LPC2132开发产品,开始时我采用原使用的LPC2104启动代码(vectors.s+init.s+target.c)进行开发,用有RAM中进行JTAG调试,没有任何问题,但ISP烧到LPC2132后,程序根本就启动不起来,不知道是什么问题引起的?因为原来用LPC2104时ISP是没有任何问题的。

2、后来我改周工的LPC2100专用模板来做启动引导,ISP下去,程序可以起来,但串口波特率不对,后我将target.c中的
        void TargetResetInit(void)
{
/*
#ifdef __DEBUG_RAM    
    MEMMAP = 0x2;                   //remap
#endif

#ifdef __DEBUG_FLASH    
    MEMMAP = 0x1;                   //remap
#endif

#ifdef __IN_CHIP    
    MEMMAP = 0x1;                   //remap
#endif
*/
/* 设置系统各部分时钟 */
/* Set system timers for each component */
/*   PLLCON = 1;
#if (Fpclk / (Fcclk / 4)) == 1
    VPBDIV = 0;
#endif
#if (Fpclk / (Fcclk / 4)) == 2
    VPBDIV = 2;
#endif
#if (Fpclk / (Fcclk / 4)) == 4
    VPBDIV = 1;
#endif

#if (Fcco / Fcclk) == 2
    PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);
#endif
#if (Fcco / Fcclk) == 4
    PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);
#endif
#if (Fcco / Fcclk) == 8
    PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);
#endif
#if (Fcco / Fcclk) == 16
    PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);
#endif
    PLLFEED = 0xaa;
    PLLFEED = 0x55;
    while((PLLSTAT & (1 << 10)) == 0);
    PLLCON = 3;
    PLLFEED = 0xaa;
    PLLFEED = 0x55;
   */
   注释掉以后,串口波特率就正确了,但就是产生不了串口中断。
   
3、不能中断后,我将Startup.s中的   
        MSR     CPSR_c, #0xdf
        LDR     SP, StackUsr
        改成:
        MSR     CPSR_c, #0x5f
        LDR     SP, StackUsr
        在RAM中进行JTAG调试可以中断,但ISP下载后程序又不能运行,弄得我现在真的没办法。
        程序都调好了,产品又等着出,就是程序启动不起来,请大家尽快帮帮忙。
        
希望谁有LPC2132的启动源代码发给我一份,我急着用,先谢谢!
E-MAIL:sunlong05@163.com 1: re:1. TargetResetInit函数中的代码不要注释,而是在用户程序计算波特率时使用Fpclk来算,举例如下:

#define  UART_BPS    115200            /* 定义通讯波特率 */
/****************************************************************************
* 名称:UART0_Ini()
* 功能:初始化串口0。设置为8位数据位,1位停止位,无奇偶校验,波特率为115200
* 入口参数:无
* 出口参数:无
****************************************************************************/
void  UART0_Ini(void)
{  uint16 Fdiv;

   U0LCR = 0x83;                    // DLAB = 1,可设置波特率
   Fdiv = (Fpclk / 16) / UART_BPS;  // 设置波特率
   U0DLM = Fdiv / 256;                            
   U0DLL = Fdiv % 256;                        
   U0LCR = 0x03;
}

2. 调试工程时,直接使用DebugInFLASH调试目标,使用EasyJTAG调试。这样,调试时代码即烧写到片内FLASH中,调试完成后即可脱机运行。
EasyJTAG驱动: http://www.zlgmcu.com/download/downs.asp?ID=1430

2: 我怎么用DebugInFLASH出现写FLASH错误?我用DebugInFLASH调试LOAD到AXD时,下面就会出现写FLASH错误,不知道是哪里配置问题? 3: re先要擦除flash

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]