回顾毕业的三年工作里,有1/3时间是在CA移植和测试中度过,从最初到现在,已接近把国内的大小CA都接触过了,同方、天柏、数码视讯、算通等,尽管各个CAS厂家的接口标准、测试用例不同,但都目的都是一样,都是为了更好的提供运营商盈利而服务。通过前端CAS的授权、反授权对终端用户进行控制,更具缴费的多少,开通数量对应的节目,告别了模拟时代一刀切的情况。
由于从事的是终端CAS的移植,因此这边对前端的结构和实现就不做介绍了,最近要在一个新平台移植天柏CA,正好借这个机会,把整个移植流程进行个记录,同时对比之前移植的其他CA,进行各类比。
在移植CAS之前,首先当然是交纳一定的MONEY给CA厂家,对方才会提供我们移植所需的,测试流、测试卡,测试库及对应头文件、说明文档几样移植必备资料。
好了,言归正传,当拿到上述说的几样资料后,就要开始动真格的了,跟玩游戏类似,都要遵循对方的规则进行,不然只有出局,CAS移植中所说的规则,都会在提供的文档里一一说明。因此到手第一件事,当然是仔细的阅读文档。
不同CAS厂家提供文档的方式也不同,就拿天柏跟同方来说,前者提供的接口移植文档分成系统层和应用层,别被名字误导了,其中的系统层就是STB实现给CAS使用的,后者反之。而同方则一个文档囊括所有,在文档中分OS/DEMUX/SMARTCARD等模块接口,每个接口都除了参数描述外,会说明是STB负责实现、还是需要STB调用的。
1) 不管是ST、海思、ALI、澜起或者国芯,拿到接口后,都先用本平台的一些API接口,把对应的OS\DEMUX等接口先编写完成,具体的编写我这边就不详述了,无非是任务、信号量、队列的创建、一些cpy\malloc\free的填写,最重要的是智能卡通讯、demux过滤设置 以及CW三个接口,当然其中的库提供的OSD消息传输和debug调试接口也比较关键,对后期的一些调试会有一定帮助(这个后面会说)
2) 然后按照文档需求依次先调用初始化内核接口,一般在初始化内核接口的时候,库会调用步骤1中的接口创建任务、信号量等接口,通过这个接口的返回值可