学习

1.光看不练,没什么用的,还是靠你自己多去练习,就算简单的跑马灯,也有N种玩法,

我只是做了一种而已,你要真看懂了,可以自己多去写几种玩法,加深体会,后续自然就知道怎么用了。

2.看没用,先自己写,写不出来就抄,抄一遍还写不出来,就抄十遍。这是笨人学习办法,不过用来学嵌入式照样有用,量变会有质变的

3.个人觉得学习任何一种处理器,最重要的是4个方面: 
 电源,首先要搞清楚片子有哪几个是供电引脚,有几种电源(VDD,VDDA等),每种电源负责给片子哪些外设供电;

时钟,要了解片子的时钟树,知道片子有几个时钟源,都给到哪些外设,外设是如何使用这些时钟源的;

中断,片子的中断机制(比如AVR中断不支持嵌套,而stm32是依靠NVIC的设置响应中断的,等等),都有哪些中断源,各对应哪些外设;
GPIO的附加功能,有些片子GPIO的第二或第三功能是固定的,而stm32是可以冲映射的,各种附加功能对应各外设的哪些输入或输出。
说起来是很简单的事,做起来就需要很大的毅力,毕竟学片子是一个慢慢积累的过程,学过的片子多了,再学新的就会快一些。
4.

首先学习是一辈子的事情.永远学不完.
提高你能力的方式最好的办法就是做项目.当然,如果你现在还在学校,那可能搞不到项目,不过不要紧,你可以自己给自己定目标,去做你自己想要做的东西.
关键在这个目标,看你怎么定,太低了,你觉得没意思,太高了,你可能又搞不定.其中就要你自己权衡了,可以设计一个项目,既不是很容易实现,又不是很难的.而且,最重要的是,一定要涉及你未知的领域,这样才能学到新的东西.这类项目做多了,就慢慢积累了,就算每个项目你只学习了一个新东西,那么10个项目下来,你就有10个知识点的积累了.
可见任何知识都是靠你的长期积累,慢慢掌握的.当你积累到一定程度,自然做什么东西都会比较顺手了.

5.

我要是学习我自己的开发板,重要的我会仔细看甚至重写一遍,比如system文件夹里面的代码.剩下的hardware里面的代码,

采用举一反三的方法学习,比如跑马灯,那我就多做几个花样,虽然简单,但是最重要的是练手,孰能生巧,用在哪里都是合适的.

6.

楼主,您好!我就不像楼上的和你讲大道理了,和你说下实际的。Linux和stm32 一个是软件平台一个是硬件平台,完全不一样的(记住,是平台!)。这样说吧,既然你喜欢单片机,就先学stm32,把硬件基础打牢,尤其是各种总线(usb、iic、spi...)、各种外设模块(红外、温湿、mpu6050...),然后就把注意力集中到ucosii上,也就是说学会把你的任务放到操作系统这个架构里完成,而不是简单地写程序--对操作系统机制的掌握是你和周围的单片机同事拉开距离的关键;在这过程中你要解OS的精髓,建议你这个时候看下《操作系统原理》。
  然后你就可以接触ARM了(为什么接着不是linux呢?等会告诉你)。你可以买个友善之臂或者飞霖的s3c2440开发板(算不算广告啊?),要不买个A8的板子也行,都是500元左右。开始学ARM时无非就是裸板程序,用汇编和C控制cpu内部的寄存器,从而控制外设,和STM32差不多的。当你学会控制开发板的外设后,恭喜你进入嵌入式Linux的大门!
  这个时候,你需要深入精通C语言了,注意是精通GNU C。什么叫精通GNU C呢?你得知道GNU C和ANSI C的区别,知道一段C代码运行时在SDRAM中布局,知道指针的灵活用法,知道如何用面向过程的C实现面向对象思想的方法... 你需要至少看三本C语言的书(国产的除外)外加若干博文。前提是你在Linux里写代码。你可以装个ubuntu,学会设置环境变量、学会用vim,用gcc编译、学会用gdb调试,建议你看下《鸟哥的Linux私房菜》。
 精通C后,你可以开始学习Linux系统编程了,多进程、多线程、socket编程什么的。建议从《Unix高级环境编程》开始,然后看看《...IPC》《UNIX网络编程》... 每一部分就是一本书 !这之中最重要是 多进程/多线程对共享变量的并发控制机制,和socket编程--切记一定要把它们学好!!!当你把这些学完后,也就一年多的时间,你就会爱上Linux了。
  最后,你研究下uboot、Linux内核剪裁,文件系统制作什么的。这个时候,你前面学的C和Linux系统编程已经和你的ARM板发生联系了。
  最最后,如何你依然深爱硬件。你可以向嵌入式Linux驱动开发方向发展,你之前在stm32上积累的硬件基础这时就派上用场了。从Linux设备模型、内核模块,到字符设备驱动、块设备驱动、网络设备驱动,养成用source insight看Linux内核源码的习惯--随便回想下当年学的ucosii。建议你看《LDD3》和宋的《Linux设备驱动程序详解》。这个过程需要两年的时间。
  最最最后,你会发现stm32、s5pv210、ucosii、linux都叫嵌入式系统。

  ps:看到你的问题,想起去年这个时候的我:白天去餐厅兼职挨骂,晚上回去点灯敲代码,满是心酸泪啊...
  还有不要相信很多产品不用Linux,没走进Linux的世界不会明白Linux有多么美。但是不要把Linux当你的终极目标,就像当初不把ucosii当终极目标一样,使用操作系统机制解决复杂问题的策略才是你整个职业生涯应都应当关注的--连z-stack协议栈都采用了操作系统抽象层(OSAL)机制了--关于这一点只可意会,不可言传。有空看下《Unix设计哲学》。大家一起学习交流。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值