尊敬的兰先生
我的问题是关于软件中断。
Q1:swi_number 的范围为0到13 (第2号除外), 为什么没有 case2?
#pragma INTERRUPT (software_interrupt、SWI)
空 software_interrupt (uint32 arg1、uint32 arg2、uint32 arg3、uint8 swi_number)
Q2:调用 这些编译为软件中断的函数 必须在特权模式下完成, 当这些函数完成后,它应该进入用户模式?
我找不到有关返回 用户模式的相关代码?
例如:
案例12://清除完整性字。
{
寄存器 uint32 * program_index =(uint32 *) program_area;//存储程序的目标地址
寄存器 uint32 * source_index =(uint32 *) zero_out_integration_word_start;//用于 pflash 的源地址;
寄存器 uint32计数器;
for (counter=0;counter < 32;counter++)//将程序从 pflash 复制到 RAM
{
*(program_index++)=*(source_index++);
}
zero_out_integration_word ();
返回;
}
Q3: 案例12://清除完整性字。
对于(counter=0;counter < 32;counter++)//将程序从 pflash 复制到 RAM、
如何确定 pflash 中函数 zero_out_integration_word 的长度 为 32? 如果 PFLAS 中的 zero_out_integration_word.obj 的长度超过32个、会发生什么情况?
同样、关于案例14的问题是什么?
案例14://擦除整个程序闪存
{
寄存器 uint32 * program_index =(uint32 *) program_area;//存储程序的目标地址
寄存器 uint32 * source_index =(uint32 *) clear_program_flash_start;//用于 pflash 的源地址;
寄存器 uint32计数器;
for (counter=0;counter < 32;counter++)//将程序从 pflash 复制到 RAM
{
*(program_index++)=*(source_index++);
}
clear_program_flash();
返回;
}
祝你一切顺利
Lei