前两天写RTC中断 使用串行输出 它发现,该方案将while(!(rUTRSTAT0 & 0x2));走不出的情况.的 解决方法: main函数添加: U32 mpll_val = 0,consoleNum; Port_Init(); //定义在2440lib.c mpll_val = (92<<12)|(1<<4)|(1); //init FCLK=400M, ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val…
问题描述: TQ2440的官方裸跑程序中,对SD卡先进行读操作,然后再写,发现不能程序卡死.倘若对SD卡先写后读,程序可以正常运行,奇哉怪哉? 写数据的关键代码--> while(i < BlockSize) { //开始传递数据到缓冲区 status=rSDIFSTA; if((status&0x2000)==0x2000) { //如果发送FIFO可用,即FIFO未满 rSDIDAT = *TxBuffer; TxBuffer++; i++; } } 调试与问题分析: 调试的时候发…
裸机程序应该是一个很好的选择 1. 不拷贝启动代码,因为我们用自己的启动代码 2.       建立工程目录分级,建立完成后如下所示 拷贝相应代码到对应目录中 Option中拷贝 Core中拷贝 建立新的main文件 将文件加入工程 路径中建立包含 还要为asm文件建立包含 修改2440init.s文件 行(可能你的不是) AREA    Init,CODE,READONLY修改为 AREA    RESET,CODE,READONLY 这样编译器就能找到入口点了 在上面这句下面加上一行 字节对…
在裸板2440中,当我们使用nand启动时,2440会自动将前4k字节复制到内部sram中,如下图所示: 然而此时的SDRAM.nandflash的控制时序等都还没初始化,所以我们就只能使用前0~4095地址,在前4k地址里来初始化SDRAM,nandflash,初始化完成后,才能将nandflash的4096至后面的地址内容存放到SDRAM里去. 而裸板驱动的步骤如下所示: 1.写makefile 2.写lds链接脚本 (供makefile调用) 3.写真正要执行的文件代码,比如初始化nand…
要调试裸板,有两种初始化方法,一个是用烧好的uboot初始化,再有就是直接用JLink+GDBServer初始化.代码参考了网上的资料,根据手头的OK6410开发板做了修改.整体代码如下: # Connect to the J-Link GDBServer target remote localhost:2331 # Set JTAG speed to 30 kHz monitor endian little monitor speed 30 # Reset the target monitor…
在裸板2440中,当我们使用nand启动时,2440会自动将前4k字节复制到内部sram中,如下图所示: 然而此时的SDRAM.nandflash的控制时序等都还没初始化,所以我们就只能使用前0~4095地址,在前4k地址里来初始化SDRAM,nandflash,初始化完成后,才能将nandflash的4096至后面的地址内容存放到SDRAM里去. 而裸板驱动的步骤如下所示: 1.写makefile 2.写lds链接脚本 (供makefile调用) 3.写真正要执行的文件代码,比如初始化nand…
以往2440和6410的启动方式,只要我们把裸板代码烧写到NAND FLASH的开始位置,当开发板上点启动时,处理器会自动从NAND FLASH上拷贝前面一段的代码到内部的RAM中执行.按照以前的方法,我写了一段汇编代码,如下: 1_ARM/1_start/start.S #define WTCON 0xE2700000 .text .align .global _start _start: //close the watchdog ldr r1, =WTCON str r0, [r1] loo…
2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 966  Solved: 457 [Submit][Status] Description 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些 数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数.然而 这丝毫不影响他对其他数的热爱.  这天是小X的生日,小 W 想送一个数给他作为生日礼物.当然他不能送一 个小X讨厌的数.他列…
原文http://blog.chinaunix.net/uid-14114479-id-3125685.html ARM驱动蜂鸣器的方式有两种:一种是PWM输出口直接驱动,另一种是利用IO定时翻转电平产生驱动波形对蜂鸣器进行驱动.PWM输出口直接驱动是利用PWM输出口本身可以输出一定的方波来进行驱动.在ARM中可以用几个特殊功能寄存器对占空比和周期进行设置.通过设置这些寄存器产生符合蜂鸣器要求的方波后,这个时候利用这个方波就可以对蜂鸣器进行驱动了.使用PWM时,通过TCMPn可以决定脉宽,TCN…
1.首先需要知道 led 是受哪一个gpio口控制 从上图可以看出,两个led灯是受GPF4 GPF5控制的,低电平有效. 2.怎么控制GPF4 GPF5 通过2440的芯片手册可以看出,需要设置GPF的引脚只需要设置,两个寄存器就可以了.GPFCON  GPFDAT. C语言部分: void delay(volatile int d)//延时函数 { while (d--); } int led_on(int which) { unsigned int *pGPFCON = (unsigned…