查看: 5112|回复: 15

[已解决] [求助]程序启动后如何将设备寄存器恢复默认值(已解决)

[复制链接]

该用户从未签到

22

主题

93

帖子

0

中级会员

Rank: 3Rank: 3

积分
315
最后登录
1970-1-1
发表于 2014-9-26 15:31:54 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_ZJJ 于 2014-9-30 09:01 编辑

应用程序和初始化与BOOT的初始化有冲突(Boot另外有其他功能),如果启动的时不经过boot则程序运行没有问题,否则会进入HardFaultRES Interrupt(中断3)请问斑竹,如何在程序启动的时候将所有寄存器恢复一次默认值?
我知道答案 目前已有15人回答
回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-9-26 16:34:19 | 显示全部楼层
楼主用的是什么芯片?
是不是bootloader区域保护了,然后你的应用程序又对bootloader保护区域做了修改,导致进入错误?
回复 支持 反对

使用道具 举报

该用户从未签到

22

主题

93

帖子

0

中级会员

Rank: 3Rank: 3

积分
315
最后登录
1970-1-1
 楼主| 发表于 2014-9-26 17:09:42 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-9-26 16:34
楼主用的是什么芯片?
是不是bootloader区域保护了,然后你的应用程序又对bootloader保护区域做了修改,导 ...

我用的KL26,boot主要是usb模式,启动后影响了正常的APP的工作
回复 支持 反对

使用道具 举报

该用户从未签到

22

主题

93

帖子

0

中级会员

Rank: 3Rank: 3

积分
315
最后登录
1970-1-1
 楼主| 发表于 2014-9-26 17:10:00 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-9-26 16:34
楼主用的是什么芯片?
是不是bootloader区域保护了,然后你的应用程序又对bootloader保护区域做了修改,导 ...

我用的KL26,boot主要是usb模式,启动后影响了正常的APP的工作
回复 支持 反对

使用道具 举报

该用户从未签到

22

主题

93

帖子

0

中级会员

Rank: 3Rank: 3

积分
315
最后登录
1970-1-1
 楼主| 发表于 2014-9-26 17:11:14 | 显示全部楼层
应用程序做没有对bootloader的flash区域进行操作,在icf里面做了划分
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-9-26 17:44:30 | 显示全部楼层
quentin 发表于 2014-9-26 17:10
我用的KL26,boot主要是usb模式,启动后影响了正常的APP的工作

你把你的问题截个图给我看看呢。
还有你代码是参考哪里的?
不行你把相关代码资料给我,我这边试下好吧。
回复 支持 反对

使用道具 举报

该用户从未签到

22

主题

93

帖子

0

中级会员

Rank: 3Rank: 3

积分
315
最后登录
1970-1-1
 楼主| 发表于 2014-9-26 17:54:17 | 显示全部楼层
有没有可能是USB中和应用程序中都开了一些资源比如定时器,所以导致这个 问题。不知道Freescale USB Stack v4.1.1给的例程中,启动代码开了哪些资源是可能导致冲突的?
回复 支持 反对

使用道具 举报

该用户从未签到

22

主题

93

帖子

0

中级会员

Rank: 3Rank: 3

积分
315
最后登录
1970-1-1
 楼主| 发表于 2014-9-26 18:10:20 | 显示全部楼层
用的就是D:\Program Files\Freescale\Freescale USB Stack v4.1.1\ProcessorExpert\Examples\Device\MSD\USB_MSD_DEVICE_MKL25Z128_PEx这个例程改得,太大传不上来啊
回复 支持 反对

使用道具 举报

该用户从未签到

22

主题

93

帖子

0

中级会员

Rank: 3Rank: 3

积分
315
最后登录
1970-1-1
 楼主| 发表于 2014-9-26 18:13:21 | 显示全部楼层
使用USB跳转后,在APP里面用到SPI口就会跳到NMI中断
sshot-1.png
回复 支持 反对

使用道具 举报

该用户从未签到

22

主题

93

帖子

0

中级会员

Rank: 3Rank: 3

积分
315
最后登录
1970-1-1
 楼主| 发表于 2014-9-26 20:19:53 | 显示全部楼层
问题找到了,是boot的跳转有问题:
JumpToUserApplication((long )0xA000, ((long )(0xA410)));   // Jump to user application
改为
JumpToUserApplication((long )0x20003000 - 4, ((long )(0xa410)));   // Jump to user application
第一个参数为什么是0x20003000-4啊,斑竹能否说明下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 23:25 , Processed in 0.111065 second(s), 31 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表