|
LM3S1635片内Flash编程,执行到FlashFrogram函数的时候就报错,跳进starup.s文件中的FaultISR函数,不知道是什么原因,有大神能帮我解决么
#include <lm3sxxx.h>
#include "uart_config.h"
#include "hw_memmap.h"
#include "hw_types.h"
#include "gpio.h"
#include "sysctl.h"
#include "systick.h"
#include "sysctl.h"
#include "gpio_test.h"
#define EXE_CLK SYSCTL_XTAL_8MHZ // CCLK分频系数,最高为50MHz
#define MY_SYSCLK (EXE_CLK-1)
#define K_SAVE_ADDRESS (1024*100)
/*********************************************************************************************************
** Function name:
**
** Descriptions: Main function of the project 工程的主函数
**
** Input parameters: None 无
** Returned value: None 无
**
** Used global variables: None 无
** Calling modules: FlashUsecSet, FlashErase, FlashProgram
**
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
int main(void)
{
unsigned int i = 0;
unsigned long Data[4] = {0x12345678, 0xaa55aa55, 0x55aa55aa, 0xaabbccdd};
// float FS_Data[sizeof(KtcTable)];
FlashUsecSet(7);
#if 1
if (FlashErase(K_SAVE_ADDRESS))
{
while(1) ; /* 擦除Flash出错 */
}
#endif
#if 1
if (FlashProgram((unsigned long *)Data, (unsigned long)K_SAVE_ADDRESS, (unsigned long)4*4)) /* 编程Flash出错 */
{
while(1) {
;
}
}
#endif
#if 0
if (FlashProgram((unsigned long *)KtcTable, (unsigned long)K_SAVE_ADDRESS, (unsigned long)(sizeof(KtcTable)))) /* 编程Flash出错 */
{
while(1) ;
}
#endif
#if 0
for (i = 0; i < (sizeof(KtcTable)/sizeof(KtcTable[0])); i++)
{
FS_Data[i] = HWREG((float *)(K_SAVE_ADDRESS+ i * 4));
if ( FS_Data[i] != KtcTable[i])
{ /* 比较写入Flash的数据是否正确 */
while(1) ;
}
}
#endif
}
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|