跳转到主内容
Knowledgebase
Home
Renesas Electronics China - Knowledgebase

(闪存) 关于CPU改写模式下的改写控制程序设计,应注意哪些问题? [2007/02/26]

最新更新:02/26/2007

Question:

(闪存)  关于CPU改写模式下的改写控制程序设计,应注意哪些问题? [2007/02/26]

Answer:

在CPU改写模式下,由于不能从CPU读取闪存,因此改写控制程序须先传送至RAM区再执行。
编写改写控制程序时,由于与闪存中数据相关的指令不能使用,因此需要注意以下事项:
对于JSR与JMP指令,汇编源文件时,跳转地址被指定为闪存区域中的地址。
当使用标号来表示跳转地址时,要使用以下方法将其指定为绝对地址。这些方法允许MCU通过RAM区域的寻址指令,将改写控制程序传送至本区域。
例如,使用源程序中已定义的标号,改写控制程序传送到RAM区域时,定义与RAM中的绝对地址相一致的标号。调用子程序时使用此标号。

例:擦除处理子程序调用(执行JSR指令)。
RAM_SUB_ERASE (RAM区域中子程序开始的绝对地址)
= RAM_PROG_TOP (RAM区域中改写程序开始的绝对地址)
+ SUB_ERASE (闪存区域中子程序开始的绝对地址)
- PROG_TOP (闪存区域中改写程序开始的绝对地址)

(源程序中的记述举例)
RAM_SUB_ERASE = RAM_PROG_TOP + SUB_ERASE - PROG_TOP
注:RAM_PROG_TOP、SUB_ERASE以及 PROG_TOP的每一个标号必须在以上记述之前在源程序中预先定义。
(RAM_SUB_ERASE).

使用JMP指令的另一个例子:
(JMP指令的分支地址指定为绝对地址)
在记述中使用了结构化描述语言;
LIF-LELSE-ENDIF
LFOR-NEXT
LSWITCH-CASE-ENDS
当记述扩展为汇编语言时,要使用包含长分支的JMP指令。

为了避免这个问题,使用如下格式:
IF-LELSE-ENDIF
FOR-NEXT
SWITCH-CASE-ENDS
或使用其他的记述格式,如条件转移,以实现RAM区域中的寻址控制。

(#106589)

Suitable Products
3803H
3803L
3850A