一直以来,每当同学问我所从事的工作,我会说“我从事笔记本行业,主要负责EC这一块”,紧接着他们无一不例外的很迷糊的看着我“EC是什么东西?”。于是我只好不厌其烦的给它们介绍:EC是Embedded Controller的缩写,也就是嵌入式控制器的意思,它是笔记本里面挂在南桥下面的一个芯片,对应于台式机里面的super IO。主要负责给笔记本上下电、管理电池充放电、扫描键盘按键、处理Touchpad数据、实时获取CPU温度从而控制风扇转速、控制笔记本的部分LED灯等等。 于是他们会恍然大悟似的说“原来这些东西都是EC做的啊,我还以为是操作系统进行处理的呢”。恩,在没接触EC以前,我也以为这些东西微软都给搞掂了,并且以为BIOS不过就是用来显示开机LOGO以及设置一些参数的。BIOS、EC行业的确是很窄的行业,而且这两个英文缩写本身也不为人所知,虽然你的笔记本无时无刻不在跟它们打交道。那么就下来我就粗略的介绍一下EC这个东西,以便于您能更加了解自己的笔记本。当然如果您是一个EC同行的话,希望你能对我所述不正确的地方给予指正。由于我是技术人员,所以更多的是从技术的角度来分享自己的一点心得,希望对新入行的同行能有所帮助。
首先,从软件的角度来看EC。
工欲善其事,必先利其器。EC所使用的开发语言是C和汇编,由于汇编的可阅读性太差,不利于技术的推广,所以现在的EC厂商逐渐的抛弃了汇编,现在基本上是纯C语言。
开发工具为Keil C51或者AVC51。编译EC程序并不是使用Keil/AVC51的GUI界面,而是使用了他们自带的make.exe。因为使用makefile更加简洁高效,只要在命令行模式下输入一个make命令就可以编译链接几十个EC程序的源文件,还有一个原因是上游的EC厂商已经给搭建好了EC的框架,