导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[因果]keil C对lib封装库反汇编成C语言



No.49100
作者:因果
邮件:chenshiyangyi@163.com
ID:113570
登陆:7次
文章数:11篇
最后登陆IP:119.59.248.166
最后登陆:2011/10/3 17:36:40
注册:2008/6/11 14:23:51
财富:156
发帖时间:2008/6/11 14:25:35
发贴者IP:218.17.71.153
标题:因果:keil C对lib封装库反汇编成C语言
摘要:No.49100keil C对lib封装库反汇编成C语言 2004台湾的扬智(ali)科技开始做mp3,最早的产品仅仅断码屏,高速usb 2.0,adpcm录音。当时深圳的盈科一直在做它的产品,对于当时高速usb这一优势,陆陆续续也接到了一些外单。由于其录音的品质很差,返修率高,所以只有几家工厂在做,量一直上不去。2006年我到扬智驻深圳办事处去培训,在他们的公告栏上,写着“月出货量突破3kk”,那个时候,台湾ALI已成为全球最大的MP3芯片供应商之一,其产品音质也相当突出,尤其是ALI的最新解码芯片Ali M5661,还具有USB 2.0接口的MP3+Flash Disk控制芯片,可用于U盘+MP3播放器等解决方案,数据传输速率可以达到目前业界领先的水平,同时它还具有OTG(On-The-Go)、高性能、高度集成化、功能丰富等特点。到后来我接触到了其代码,才发现其合理性,巧妙性。对于ali我所知道的,IC型号有5661p,5661c,m7101,5667;5661p是针对于黑白屏的,5661c彩屏,它们出货的价钱不一样,它们却是同一颗IC,以致于当时深圳的一些方案公司也投入到如何破解其原因,极少数的公司找到了答案,修改寄存器obCONTEXTSW----”反汇编”,去看它的汇编语言。充分的证明了一点,知识就是金钱。
2006年无锡华晶推出了3301,其内核的构架与当时的ali,action,segmatel一样,一颗dsp,用于音频,视频的编解码;一颗mcu,用于fat,usb,lcd,key底层的驱动。dsp采用的是飞利浦的内核,品质在行业中是数一数二的;mcu是单指令周期。客观来说,华晶是当时最有优势的,但是这仅仅是从硬件上来说的。读者可以访问他们的网站,intech.ys168.com,你会很清楚他们今天销售的状况;他们已经退出mp3的舞台了,原因就是软件不稳定,很些变量的滥用。我举一个例子,对于一个文件的预先处理,他把一个文件的cluster链表一次性读入buf[];这有一个问题,如果是128M的内存,它无法播放大于90M的文件。
Ali及华晶的IC,有一个非常相似的地方就是其mcu都是51内核,而且都是用keil编译,且都能可以simulate查看其汇编程序。我想如果想让华晶翻身,可能只有充分的理解ali的程序编写,包括变量的定义,主要是绝对地址的定义。但是,ai的核心的mcu程序,包括fat,usb,及逻辑到物理层的程序,最关键的是对flash的处理,都是打包成lib,用户只能调用其接口函数,不能看其源码。我有时闲得无聊,会对看ali的汇编语言,开始比较吃力,后来看多了,也就得心应手,速度也越来越快。我把我的心得写下来,与大家分享,不足之处,请指教.chenshiyangyi@163.com
   1.Keil编译环境的设定
 
      

 
进行编译之后会生成038Custm.M51文件,里面有局部变量,全局变量的地址;函数的地址,及函数变量的定义(有的lib会把变量去掉,此时你只能看到其绝对地址,这时你应该区别它是全局的绝对地址,还是局部变量)
下面的编译信息即为封装库里的函数信息.
-------         PROC          _PHYWRITEPAGEFROMSRAM
  X:947DH         SYMBOL        bStorPath   ===传递的参数
  X:947EH         SYMBOL        bLen
  -------         DO            
  D:0055H         SYMBOL        bb          ====局部变量的定义
  D:0056H         SYMBOL        fRet
  D:0057H         SYMBOL        bKeepSpeed
  D:0058H         SYMBOL        bAdjust
  -------         ENDDO         
  C:BD3DH         LINE#         7843
………..
  C:BE93H         LINE#         7995
  C:BE94H         LINE#      ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:31毫秒 最大:7697毫秒 查询6次