本人是从大二时候开始接触到单片机的,当时是看学校里的机器人大赛,电子学院和电气学院的很多优秀学长们设计的各种炫酷机器人,还有大疆举办的机甲大师赛,启发了我对这方面的兴趣。大二开始参加一些科创类的比赛,刚开始参加了飞思卡尔智能车大赛(现在改名恩智浦了),当时使用的是基于ARM的Cortex-M4系列的K60单片机,性能很够用,通过这个比赛我熟悉了单片机的基本开发流程,学会了中断是怎么用的,定时中断和外部中断的原理,基本程序框架就是把程序都放到一个定时中断去运行,每十毫秒就去读取一次CCD的数据,判断前方的路线,然后根据数据去进行电机以及舵机控制。
以及基本的电子技术基础,比如电机驱动原理,编码器测速原理,PWM原理及控制方法,摄像头CCD的二值化及简单的滤波方式,PID调速控制等。后面也陆续参加了一些其他的比赛,如单片机设计大赛,电子设计大赛,山东省机器人大赛等。学到了一些关于电子以及控制方面的知识。
到了研究生阶段,意识到裸机开发的局限性,开始学习ROTS的相关知识,实时操作系统的引入,让一些复杂的逻辑关系变得更加明晰,同时也加强了我C语言的学习,开始使用结构体、函数指针等,开始用面向对象的思想去编写程序。
研二开始了解到嵌入式Linux方向,看了左神的一些学习路线,重点跟着韦东山老师进行了系统的学习,嵌入式Linux分为两个方向:应用层和驱动层,应用开发要学习Linux系统调用的相关概念,多进程、多线程的多任务开发,以及进程和线程间的通信,网络编程等。
驱动开发偏向底层,要熟悉硬件的编程逻辑,各种设备的驱动如字符设备驱动,块设备驱动,LCD设备驱动等,BootLoader的启动流程和uboot的裁剪移植、设备树的使用等。学习驱动的开发要学习驱动的框架,熟悉一些常用的函数,以及常用的通信协议。
百问网七天物联网课程学习笔记——学习路线规划
于 2022-04-20 13:45:12 首次发布