公司一直在搞这方面的开发,想把这方面开发需要注意的地方纪录下来。
原来做的上层软件的开发,觉得绝大多数与数据库和业务流程打交道,基本上调试不怎么费时费事,出了问题很快调试跟踪就能搞定,但嵌入式开发就有很大不同,首先是调试很困难,基本靠日志进行定位,出问题时,也是要看堆栈、寄存器,和汇编。vxWorks中对一个函数的入参和出参放在哪些寄存器要非常熟悉。而linux下除精通GDB外,也需要知道一些寄存器的作用。另外,通讯中往往需要大端和小端的转换,字节对齐等知识。另外,对c/c++也要足够的知识,比如c++中this指针如何做为参数传递,如何生成符号表等。还有,就是多任务之间的协作,要保证每个任务都进行调度,并能进行任务之间的同步和互斥。通常采用的技术有,信号量,锁任务,锁中断等。




























