切换到宽版
  • 广告投放
  • 稿件投递
  • 繁體中文
    • 11514阅读
    • 32回复

    [原创]跨进光学行业是意外,也是惊喜。(一点学习经验3) [复制链接]

    上一主题 下一主题
    离线hhxxgg00
     
    发帖
    1470
    光币
    13129
    光券
    0
    只看楼主 倒序阅读 楼主  发表于: 2013-03-26
             光学的部分前几天已经发过一个帖子。如果感兴趣大家可以看看。 zvbz3a  
    ]8XIw`:f  
             这个帖子想跟大家交流一下硬件和嵌入式的一些学习心得(这部分知识对于光学工程师不是必备的,学习可对整机系统集成有帮助)。   `?vI_>md'!  
    .@f )#2  
            嵌入式学习要循序渐进,对于初学者。我走了不少弯路,最后还是从最简单的学起。51到AVR到ARM。要从51(典型芯片89C51芯片内有4KB EEPROM,若片内ROM不够用,也需扩展片外ROM。)入手,是因他很简单,管角功能十分简单,寄存器(中断、计时、电子沟)十分少,内部总线和时钟拓扑结构很清晰。可以帮助建立起初步的硬件概念,如果学习过c语言,看过51芯片手册,恰恰身边有一块开发板,马上就可以动手写程序。认识51要最为重要的是要认识开发板上的一些外围硬件,步进电机、移位寄存锁存器、温度传感器、蜂鸣器、EEPROM等等(了解他们最为直接的方法就是看硬件手册),这个过程中可以学习到pwm波(驱动步进电机和蜂鸣器)、ad和da转换(蜂鸣器)和一些接口时序(IIC、SPI等)。写一些简单的键盘扫描(去抖动)、液晶面板驱动、这种简单的驱动程序。学习51的过程收获很多,首先对时序有了清晰的认识,对驱动有了深刻的了解。任何系统(win、Linux)都要建立在可靠的、简单、高效的底层驱动基础上。51和外围电路的这种交互程序就可以认为是驱动。把驱动封装成统一的接口(api)交给系统然后由系统分配给每个程序进行应用,这样可以减少冲突和代码重复。 pR~"p#Y  
    ?D=%k8)Y  
            AVR(88芯片)的学习主要是为ARM学习做准备,AVR的管脚功能和ARM的十分像,管脚可以定义输出还是输入,数字还是模拟,带不带上拉和下拉电阻。对AVR的学习可以止步于此。 V5d|Lpm  
    ; 5!8LmZ0#  
            终于到了ARM。主要涉及两种芯片STM32(Cortex-M3内核未来和顶替ARM7内核)和s3c2440(ARM9内核)。第一次看stm32的芯片手册,会让你头皮发麻。好几百页的英文实在是让你受不了。好在现在资料比丰富,可以绕过手册看中文的教程。遇到疑问可以看原版手册。通读手册,主要了解,指令集(精简指令集还是ARM指令集)、总线结构(核心和外设都在总线上交互数据)、片内资源、片上外设、时钟锁相环(为核心和外设提供各种时钟时序)等等。之后可以用指令集编写一些简单的小驱动,驱动外部器件(如led等)。由于ARM芯片结构比较复杂内部外设丰富,所以芯片涉及到的驱动会比较多。如果用ARM开发硬件系统每一次都要从新写一遍底层驱动是很不现实和费时的事。所以一般的芯片公司都会针对自己的产品开发了相应的固件库,stm32有一个3.5版本的固件,固件已经集成了所有片上资源的简单驱动。如果已经了解了指令集和用指令集编程的方法就可以直接看固件了,固件里面的东西更通俗易懂,省去查找相应寄存器控制指令的麻烦。有了固件就可以做系统移植了,stm32核心频率比较低48m所以只能跑uc-os2小系统,可以移植玩玩。如果感兴趣可以了解下uc-os2的任务调度,进程管理等功能比较有意思。 z-h7v5i"  
    z&A# d  
            s3c2440(ARM9)学到这之后更多的是偏软件的东西。 s3c2440的主频和片上外设足以应对现在主流的嵌入系统(安卓、苹果和Linux)更为强大的是内置音频视频解码模块(手机硬解码能力的核心)。针对s3c2440芯片片硬件方面的学习可以参见stm32软件部分重要的是系统移植。移植Linux、移植ggc、移植驱动、移植文件系统、移植内存管理、移植gui。像搭积木。至此硬件部分已经完成,在深入研究已经是软将工程师的工作。 k%({< ul  
            希望大家都早日功得圆满,德艺双馨。 El3Ayd3  
            我的qq:125795970  欢迎交流指正! /C[XC7^4'  
            http://www.opticsky.cn/read-htm-tid-65260.html(一点学习经验1) SQf.R%cg$  
            http://www.opticsky.cn/read-htm-tid-66654.html(一点学习经验2) (7}Zh|@W  
            http://www.opticsky.cn/read-htm-tid-66659.html(一点学习经验3) S L~5[f  
    S >\\n^SbT  
    [ 此帖被hhxxgg00在2013-04-02 17:03重新编辑 ]
    3条评分光币+25
    cyqdesign 光币 +15 原创内容,奖励! 2013-03-26
    vurtne_000 光币 +5 - 2013-03-26
    vurtne_000 光币 +5 - 2013-03-26
     
    这个时代,每个人都在大声说话,每个人都在争分夺秒。我们用最快的速度站上高度。但是也在瞬间失去态度。当喇叭声遮盖了引擎声,我们早已忘记,谦谦之道才是君子之道。你问我这个时代需要什么,在别人喧嚣的时候安静,在众人安静的时候发声。不喧哗,自有声。
    分享到
    离线周益翔
    发帖
    8
    光币
    5
    光券
    0
    只看该作者 1楼 发表于: 2013-03-26
    有指导意义
    离线vurtne_000
    发帖
    1493
    光币
    4967
    光券
    0
    只看该作者 2楼 发表于: 2013-03-26
    冰冰我爱你。
    离线maiwudi
    发帖
    1575
    光币
    6621
    光券
    0
    只看该作者 3楼 发表于: 2013-03-26
    呵呵,厉害啊,都是自己找资料学习的吗
    离线wwlin00
    发帖
    101
    光币
    5
    光券
    0
    只看该作者 4楼 发表于: 2013-03-27
    楼主很强悍!
    离线lovelyjun
    发帖
    250
    光币
    412
    光券
    0
    只看该作者 5楼 发表于: 2013-03-27
    收藏了,学习!
    离线houge
    发帖
    19
    光币
    3
    光券
    0
    只看该作者 6楼 发表于: 2013-03-28
    挺好,
    离线strategy
    发帖
    293
    光币
    6
    光券
    0
    只看该作者 7楼 发表于: 2013-03-28
    人的精力有限,专攻一个方向就好了  嵌入式嘛,也还是敲代码,没啥意思
    离线桃木
    发帖
    36
    光币
    2
    光券
    0
    只看该作者 8楼 发表于: 2013-03-29
    什么意思。
    发帖
    79
    光币
    41
    光券
    0
    只看该作者 9楼 发表于: 2013-03-30
    我觉得人的精力有限,光机电包括的东西太多了,不如专攻一项,纯属个人看法。。。。