Do everything if needed

Only to note everything I meet.

三星平台开发笔记

  近日开始三星平台的开发,了解到一些6410特有的现象,予以记录。

  1,6410芯片内分很多电源域,可以分别开关,但需要注意关掉某个模块的电源之后将不能访问其上的寄存器,如果访问会引起ARM死锁,且不可恢复。关掉时钟后是可以访问的。

  2,6410的Camera interface似乎有BUG(只是一种猜测,不敢确定):它没有中断状态寄存器,即表示Capture或者Preview中断是否有效的寄存器,只有对应的一级中断,当一级中断来时即表示有这两种中断之一,这里没有问题。但程序如果在中断还没来时就去清除就会引起Camera interface混乱。

  3,6410的MARB总线似乎有缺陷。最近遇到一个问题:有一块板,BOOT LOADER一开始运行挺正常,一旦启动LCD controller,则系统立即崩溃,产生了 data abort,同时仿真器读取RAM和6410上的外设寄存器时会时而能正确地读到值,时而是错误的数据。因为访问内存寄存器有问题,猜想可能是6410本身是坏的,但换了6410以后问题依旧。查了外围电路(晶振、电源等)都是正常的。从另一角度想可能是RAM有错引起MARB挂死,所以换了RAM,机器被修复。

  依此推断:RAM在有大量数据访问时会出错(LCD启动后),而引起MARB不正常(读内容寄存器时好时坏)。这样应该说MARB本身的设计有问题,RAM有错也不应该引起MARB出错。

 

posted on 2010-09-19 21:09  microsun  阅读(429)  评论(1编辑  收藏  举报

导航