打印
[ZLG-ARM]

在应用中编程和在系统编程

[复制链接]
939|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
leonlais|  楼主 | 2008-11-30 19:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们知道BootBlock里面有一些程序(IAP代码),可以被我们调用,我想知道它是怎么一个过程,应该这样说吧,一上电,首先开始运行BootBlock,BootBlock运行自己的程序,程序首先检查看门狗溢出标志,....检查用户代码是否有效等等(具体过程先省略),如果代码没效,它就让CPU进入ISP转态,
1)我想问,代码怎么可能会没效呢?我们写代码的时候第六个入口不是算好了吗?都固定了。除非里面没有代码。
2)当FLASH里面有有效的用户代码(程序),CPU不是处于ISP状态,我们把编写好的代码重新烧入FLASH,为什么还可以这样做?
3)如果我们把代码写进RAM里面,是ISP吗?应该不是吧?
4)我想知道,我们做调试的时候,就是一上电,ARM是怎么一个启动过程,比如判断用户代码有效,ISP状态等等,他们的先后顺序或者因果关系是怎样的,

相关帖子

沙发
ZLG_Dengz| | 2008-11-30 23:51 | 只看该作者

RE:我的理解。

   你好!
   1.“代码怎么可能会没效呢?”,举个例子吧,当将并非我们真正想写入的数据或则并非为该处理器编写的代码写入到0x0000000开始的空间里时,这样的代码就是无效的。还有一些其它情况可能导致无效码。 做这一判断的目的很简单:为了放置处理器执行未知代码(呵呵,林子大了什么鸟都有,代码多了什么事都可能发生,有些可能是我们必须避免的)。

  2. 对于第二个问题,答案是:有时可以。
     我们的远程升级就是这么实现的啊。
     你“重新烧入”的代码的各存储空间分布不和已运行代码的空间不冲突的话,可以。当你“重新烧入”的代码要覆盖正在运行的代码时,当然就不可以咯,想象“覆盖”的后果,剩下的应该不用多解释了吧。
  
  3. ISP == In System Programming
   http://baike.baidu.com/view/1356531.htm 

  4.第四个问题嘛。。
    看看实验板的配套书籍吧,在讲解复位与启动的部分应该有说明。 

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

26

帖子

0

粉丝