这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » STR711系列ARM中boot问题。。。

共8条 1/1 1 跳转至

STR711系列ARM中boot问题。。。

菜鸟
2007-03-30 18:04:41     打赏

想节约空间,实现一个单片方案。因为看中该款CPU有64K的RAM,256K的FLASH。

生产的时候采用JTAG下载BOOT程序到片内FLASH的专用区域肯定没有问题;

然后应用代码可以采用串口方式由由片内FLASH区的BOOT代码执行,写到片内FLASH的其他规定区域。

现在剩下的问题是怎么样重新上电后,不需要执行片内boot代码,直接运行应用代码呢?

这个时候的remap应该还是执行的BOOT代码吧。。。。

有请各位朋友指教,谢谢!!




关键词: STR711     系列     问题    

菜鸟
2007-03-30 18:26:00     打赏
2楼
Boot代码里等待串口输入五六秒钟,如果没有输入则跳应用代码。

菜鸟
2007-03-30 18:30:00     打赏
3楼
谢谢版主。关键是跳到应用代码后,应用代码的中断向量地址还是在boot区域,这样会引起应用代码执行不正确呀。。。。。。

菜鸟
2007-03-30 18:37:00     打赏
4楼

应用代码里把RAM映射到地址0x0,重写异常向量表就行了。


菜鸟
2007-03-30 19:17:00     打赏
5楼

版主的意思是这样的吗?从FLASH启动后,在应用启动代码中remap到RAM启动模式后,将中断服务地址 Reset_Handler,UndefinedHandler,
SWIHandler,PrefetchAbortHandler,DataAbortHandler,IRQHandler,FIQHandler的地址强制定义为000,004,008,00C,010,014,018,01C吗?

vector_begin

;*******************************************************************************
; Exception vectors
;*******************************************************************************

LDR PC, Reset_Addr
LDR PC, Undefined_Addr
LDR PC, SWI_Addr
LDR PC, Prefetch_Addr
LDR PC, Abort_Addr
NOP ; Reserved vector
LDR PC, IRQ_Addr
LDR PC, FIQ_Addr

;*******************************************************************************
; Exception handlers address table
;*******************************************************************************

Reset_Addr DCD Reset_Handler
Undefined_Addr DCD UndefinedHandler
SWI_Addr DCD SWIHandler
Prefetch_Addr DCD PrefetchAbortHandler
Abort_Addr DCD DataAbortHandler
DCD 0 ; Reserved vector
IRQ_Addr DCD IRQHandler
FIQ_Addr DCD FIQHandler


菜鸟
2007-03-31 00:10:00     打赏
6楼

怎么样才能上传图片呀?我想详细的描述一下


菜鸟
2007-03-31 00:58:00     打赏
7楼

片外FLASH

{

0x8000 0000

0x600 0000

片内FLASH

{

0x4000 8000

Apply Code

8K

8K

8K

RAM

{

0x4000 0000

Boot Code

8K

启动区

{

0x2000 0000

0x0000 0000

Boot Code可以采用TJAG接口下载;

然后运行Boot Code下载正式应用程序Apply Code

Boot CodeApply Code是两个完全独立的完整程序。

现在的问题是怎么样才能在内部Boot Code程序启动后,再正确的执行Apply Code程序?

也就是说,上电后首先肯定进入Boot CodeBoot Code可以检测相关人机接口或者其他方式,确认需要执行Apply Code,跳转到地址0x4000 8000;然后Apply Code的问题就是如何保证中断向量表的问题。。。。。。。

刚刚仔细看了看有关ARM STR71X系列的说明以及初始化汇编文件,感觉到remap都是整块的RAM区、片内FLASH区、片外FLASH映射到启动区,而不是单独指定任意一个地址都可以映射到地址0x0000 0000处。

恳请各位大侠出招,这个方案可行吗?谢谢!!

[align=right][color=#000066][此贴子已经被作者于2007-3-30 17:03:41编辑过][/color][/align]

菜鸟
2007-04-02 18:23:00     打赏
8楼
是remap整块RAM区到0啊。你已经说了,问题是如何保证AppCode的中断向量,remap的目的就是让AppCode可以设置它自己的中断向量嘛。

共8条 1/1 1 跳转至

回复

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