LPC系列芯片程序脱机不能运行
来源:互联网 发布:c语言中单引号 编辑:程序博客网 时间:2024/05/18 00:59
看看LPC系列芯片程序脱机不能运行的解决方法:
(声明一下,关于LPC的“中断向量表中所有数据32位累加和为0”,既0x00000014的保留位是否真的与其他相加为0是疑问,不一定是这样的!!!)
// Application startup from reset Question I've been developing an application using CrossWorks for ARM on an LPC and it is all working with no problem.However when I try and start the application by power cycling or resetting the target without assistance from CrossWorks the application does not start up. What am I doing wrong?
Answer The most likely causes are:
-
The LPC entering the ISP command handler mode rather than starting up the application. This could be caused by the following:
- P0.14 low on reset, this is seen as a request to enter ISP command handler mode. Most LPC target boards have some method to control this signal, check that P0.14 is low on high on reset.
- An invalid interrupt vector checksum. The reserved ARM interrupt vector location (0x00000014) should contain the 2’s complement of the check-sum of the remaining interrupt vectors. If you are using CrossWorks' default LPC startup code and you have not modfied any of the interrupt vector table then this should not be the problem as this has already been done for you.
-
STARTUP_FROM_RESET has not been defined when assembling the startup code. Some versions of the ARM startup code won't start up the application from reset by default, this is to workaround problems with the ARM reset by allowing the debugger to reset the CPU and run programs from a known reset CPU state on each run. Not allowing the application to startup from reset also acts as a safety net if you accidently download a program in FLASH that crashes and prevents the debugger from taking control over JTAG rendering the target unusable over JTAG. To define STARTUP_FROM_RESET select the startup code in the the project explorer, right click, select Properties and then add STARTUP_FROM_RESET to the Preprocessor > Preprocessor Definitions project property.
-
The LPC not booting from the correct memory on reset. If the LPC2000 you are using has an external memory interface check that the BOOT pins are configured so that the CPU will select the correct memory to boot from on reset (usually internal FLASH).
-
The application is trying to communicate with the host. If your program has calls to debug I/O functions (debug_printf, etc) then this can make standalone applications block as these functions expect to communicate over the debug interface with a host application.
If you don't think the cause is any of the above you can see what the LPC is doing by carrying out the following actions:
- Manually power-cycle or reset the target.
- Attach the debugger by selecing Debug > Attach Debugger.
- Break the execution by selecting Debug > Break. The debugger should locate to the current instruction being executed, if the address of the instruction being executed is 0x7FFFxxxx then you are executing out of the boot block and it is likely the LPC is in ISP command handler mode.
解决方法来自:http://ccgi.rowley.co.uk/support/faq.php?do=article&articleid=35
- LPC系列芯片程序脱机不能运行
- 基于ARM内核的LPC系列芯片技术文献及设计方案汇总
- VC++程序脱机运行DLL库缺失问题总结
- LPC 简单程序
- 程序不能运行
- IT9850系列芯片程序下载方法
- 用keil编译LPC程序
- LKT-P2000加密芯片脱机烧写器
- LPC
- 操作系统不能运行EXE程序
- Android Studio--不能运行程序
- 以脱机模式运行系统必备组件安装程序 (FAST Search Server 2010 for SharePoint)
- EMVTag系列13《脱机PIN》
- LPC系列arm处理器UART控制寄存器
- STM32与LPC系列ARM资源比较
- LPC2131芯片加密固化程序后,hjtag不能正常识别芯片的问题
- html5脱机web程序实例
- LPC-10e综合器程序分析
- linux进程线程通讯
- Java操作XML文件 dom4j
- SQL2008CTP之compression
- HQL: Hibernate查询语言(转自官方网站)
- Java操作XML文件 dom 篇
- LPC系列芯片程序脱机不能运行
- .net常用函数表
- 范大中:大地震前我们对诸多预兆是否太大意
- .Net平台开发实践总结
- 案例:K公司的ERP项目失败
- VC++应用程序对话框添加透明位图
- ASP.NET AJAX 1.0 RC开发
- 安装HP 2210b心得
- VS.Net水晶报表