1、熟练掌握C/C++、汇编等编程语言,及链表、队列、栈等数据结构和基本算法的编程应用。工作过程中偶尔也有用到过JAVA,C#。
2、熟练掌握数字电路,看懂原理图,分析并解决开发过程中碰到的一些硬件相关的问题。
3、熟练掌握单片机编程,如51,,ARM9,M0,M3,M4系列单片机,从大学开始做过很多单片机的项目。
4、熟练掌握使用RTOS,如UCOS和FREERTOS。
5、熟悉掌握Linux应用程序开发,熟悉掌握Linux下系统编程,多进程、多线程开发,有多款开源软件的使用经验,列如libev,libusb,zlog等。
6、熟悉掌握TCP/IP等网络协议,有实际网络编程经验。
7、熟练掌握UART,I2C,SPI,RS485,RS422,CAN等协议,熟悉I2S和USB协议。
8、熟悉uboot移植,阅读过部分uboot源码。
9、有内核移植经验,在TX2和mt7620上有成功将系统跑起来。
10、有程序框架搭建的经验,曾负责小组内单片机软件的通用平台的开发。
项目一: 海油定制化无人机项目
项目描述:在山西某些山区有海油的一些煤层气采集装置,需要定期对这些煤层气采集装置进行检查,该地区某些区域无手机信号覆盖,并且地形复杂不方便通行,所以我们想到采用无人机替代人去收集数据。
本项目主要分天空端和地面端,IOS APP,PC软件,地面端负责采集煤层气相关数据并将数据按一定的格式存储起来,天空端主要是无人机的控制、航线、数据的传输、卫通,IOS APP主要负责监控飞机的状态,位置等信息,PC软件主要负责将飞机采集的数据取出来,以及天空端、地面端日志的读取,升级等。我主要的工作如下:
1、openwrt系统的搭建,包括芯片(mt7620a)的选型,系统的裁剪,应用程序的移植。
2、系统内通信协议的设计。
3、油井数据的获取以及保存以及磁盘管理。
4、天空端数据的传输以及传输数据的管理。
5、飞机特殊航线飞行控制。
6、日志以及升级的实现。
7、协助同事解决卫星通信的部分问题以及该部分的推动。
8、IOS APP以及PC软件的前期开发,需求整理,以及进度的推动。
项目收获:
1、熟悉并掌握了openwrt系统的移植,裁剪方法。
2、熟悉了无人机相关的知识。
3、对一个项目的开发有一个系统性的认识。