CAN模块的自动代码生成(Python实现)(1)介绍
概述
2016.07.23
当前新能源汽车形势大好,商用车更是不得了,很多N年没出货的主机厂都复活了,恨不得明年的市场都圈过来。作为ECU供应商,面对各种恨不得刚签完合同就拿到货的要求,如在保证质量的前提下,尽快完成项目,服务好这么多衣食父母,就成了一个主要问题。
一个软件开发团队,特别是没钱的团队,代码全靠手写。想想当前人家牛X的公司,各种高大上的工具完全没有;就算顶着压力买来了,也不一定用得好,还不如自己造能用的小车,总比走路快点。
找来找去,对于一个稳定的ECU,控制策略基本定型,最大的不同就是控制器对外接口了。写这些代码都是体力劳动,基本没啥技术含量,而且还需要一颗细致的心。我总是想,再看几年这些控制器管脚配置和CAN协议信号,眼花年龄肯定提前。就算不为提高效率,也要为自己的眼睛好好考虑考虑。
需求
跟着当看着很好,但是没钱买的工具学:做配置,写代码的工作交给工具。看起来要做的就是写一个软件,它的功能就是根据配置生成C代码了。
首先就是要看看工具的需求了。当前的情况如下:
有专门的基础软件完成控制器硬件的配置、任务调度和基本服务什么的。这些功能都有相应的接口,使用时只要调用就行了。比如CAN通讯模块:
// 波特率设置 node 0, 250K
CAN_SetBaudrate(NODE0, BAUDRATE_250K);
// ID 0x18FFF1A0, node 0, 100ms, 接收报文<