查看: 3949|回复: 2

[教程] [群150178878]翻译一下SoftDevice启动过程

[复制链接]

8

主题

0

好友

104

积分

童生

Rank: 2

该用户从未签到

发表于 2014-4-18 16:41:06 |显示全部楼层
本帖最后由 wkong501 于 2015-1-18 15:21 编辑

SoftDevice启动过程是如何跳转到Bootloader或者用户App的?

[size=14.074073791503906px]在复位期间,softdevice会检测UICR.BOOTADDR寄存器,如果这个寄存器是空白的(0xFFFFFFFF),softdevice会判定当前没有bootloader程序。随后softdevice会通过复位中断跳转到用户的app正常执行。如果检测到UICR.BOOTADDR寄存器不等于0xFFFFFFFF,那么softdevice会判定当前存在bootloader程序并且bootloader程序的vector table存在该地址。随后会通过复位中断执行bootloader reset handler。

[size=14.074073791503906px]Bootloader在执行完后会调用sd_softdevice_forward_to_application()通过跳转到用户App。

回复

使用道具 举报

10

主题

6

好友

868

积分

版主

Rank: 7Rank: 7Rank: 7

该用户从未签到

发表于 2014-4-30 17:33:01 |显示全部楼层
不错!
这里就解释了,用Keil擦除芯片然后重新烧写程序运行不成功的原因。
因为,没有擦除UICR.BOOTADDR寄存器,上电后以为还有bootloader。相当于没有全部擦除。
回复

使用道具 举报

3

主题

0

好友

63

积分

童生

Rank: 2

  • TA的每日心情
    郁闷
    2014-10-9 16:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-9-26 16:14:20 |显示全部楼层
    楼主,请教一下,bootload怎么写?
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

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


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-10 03:23 , Processed in 0.202529 second(s), 10 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部