找回密码
 注册
搜索
查看: 7415|回复: 22

之研发篇

[复制链接]
发表于 2006-10-21 18:12:00 | 显示全部楼层 |阅读模式
我这次现在项目组中的任务是:GSM协议栈RRM层关于小区选择和重选,搜网等部分的代码开发。

平台是:WINDOWS操作系统;
编程语言:C;
编译:BC++;
在今年的2月份之前,我的工作一直都是在做TD的协议栈关于RRC部分的单元测试和集成测试(白盒的),也就是在踏入这个
行业的半年多的时间,基本上对协议栈有了一个整体的了解,但是从协议的整体把握和深刻理解上还是欠缺很多的。
但是在我进公司的半年后,公司TD的协议栈就基本的做的算是比较稳定的了。因此在这个环境下面,公司考虑开始做双模手机了
比较幸运的是我能够参与到GSM侧的RRM的开发的项目组中来,我不得不承认,这是我锻炼的唯一机会,虽然有很大的压力。
因为在过去的半年的测试工作中,有很多东西都是含混不清的,而且这是我工作一年多以来,有自己参与的第一个完整的项目。
虽然在实际经验方面和知识准备方面还是欠缺。但是我更多的要感谢公司给与我这样一个机会,因为这对于我的成长和快速进步有着至关重要的意思。
想了一下,还是把过去半年多自己所做的事情写下来,作为一个给自己的一个总结,同时也分大家分享,共同进步。

首先说明的,虽然我在参与这个项目前,做TD协议栈测试有半年多的时间,然后转做协议开发,依然对于我来说,还得从零
开始,下面我就把它们写下来了。

    补充一句:协议无论看多少遍都不过分!!!

我这次在项目组中的任务是:GSM协议栈RRM层关于小区选择和重选,搜网等部分的代码开发。

平台是:WINDOWS操作系统;
编程语言:C;
编译:BC++;
参考资料:GSM v7 的相关部分的协议,TD协议栈相关部分的代码和公司内部的其他代码,以及相关文档;

2006年2月到2006年5月中下旬 -- 整体理解协议;
这一阶段主要是分为2块:

1。了解协议:主要包括所在的项目组中所要开发的层,与上下层间的关系;
     参考协议主要包括:03系列,04系列,05系列和11系列;
     
    具体到RRM层来说,就是GMM/MM层,以及2层和物理层;和这些层涉及到的关联主要包括:
    <1>rrm-gmm/mm:sim卡中数据的保存和读取,位置区更新,路由区更新,鉴权,加密,附着和分离,选网等;
    <2>rrm-l2:寻呼,MO/MT的建立,单实体和多实体的建立,释放等;
    <3>rrm-l1:测量,BSIC,系统消息解读等;

2。理解协议:层间内部的联系要有全面和深刻的理解;
    重点参考协议包括:0322,0407,0408,0502,0505,0508,1110;
    具体到RRM层来说,涉及到的重点内容包括:
    <1>解读系统消息,搜网,小区选择,重选,测量;
    <2>接入,指派,切换;
    <3>MO/MT建立,本地/正常释放,信道模式改变,,加密,频率改变等;

3。要做的事情有:
    <1>划分功能定义,依据功能定义划分层间状态;   
    状态划分的原则:每个状态都有独立的功能定义,因此在状态的划分上尽量的保持功能独立,但是状态的数量又不要太多;
   
   
    <2>定义接口,并且定义接口的成员;
    接口定义的原则:接口定义的首要要求是接口的意义要明确,所携带的参数避免多次重复定义;其次是定义的数量不要太多;
                    

备注:接口的定义至关重要,
其原因有如下几点:
<1>接口是后续开发的基础,是理解协议后得到的个人体现;
<2>因为接口是整个开发的核心,几乎开发的全部过程都是围绕接口进行展开的!
<3>原则上接口一旦敲定,一般不做大的修改,除非出现颠覆性的问题。

4。该部分的工作时间长度:3个多月;

5。工作展开的形式:理解协议,然后讨论;




2006年5月中下旬至2006年6月底 -- 划分模块和工作任务,深入理解所负责模块部分协议;

在过去的3个多月里面,确定了状态和接口文档后,然后依据功能划分成几个小模块,每个模块包括几个状态;
然后按照模块分配给项目组的每个人。那么每个人要做的主要事情就是负责自己的模块,以及和项目组中的人进行协调工作;

这一阶段的工作也是分为3个模块
1。深刻理解自己所负责的模块,
2。编写概要设计文档(状态,接口,状态转移图,定时器,主要的流程)
3。协调项目组中其他开发人员的工作;

4。要做的事情:
    <1>深刻理解自己负责的模块,就是反复精读,然后不清楚和明确的就提交到项目组讨论;
    <2>在完成协议理解后,就开始画状态转移图(附信号),然后依据状态转移图,画出主要的正常的流程(最好能够参考一致性测试需求)
       然后再此基础上尽可能多的设计出异常流程(越多越好);
    <3>定时器的添加相对独立,也可以放在后续做;
    <4>待概要设计文档写作基本完毕后,要提交到项目组讨论;并且能够经受项目组的质询;
5。工作时间长度大约有3周阅读协议,1周写文档;

6。开展的形式:理解协议,然后讨论,编写概要设计文档,然后讨论;

中途耽搁了一个月,现在回想不可饶恕。
  


2006年8月初至2006年8月中旬 -- 详细设计文档 (编解码,变量定义,定时器定义,指针和内存的申请,使用和释放)

在完成了概要设计文档的讨论工作后,项目组内部集体讨论,然后逐个审核,最终确定状态,接口和主要流程后,
进行详细设计阶段。该阶段主要的工作分为3个阶段
1。确定主要的全局变量,局部变量,结构体,定时器等参数的分配,使用,释放等;(编程规范)
特别是指针和内存的申请,使用和释放。
2。基于协议进行信号的编解码函数的编写;
3。搭建代码化的环境,导入一部分全局变量,和编解函数等;

4。要注意的事情:
    <1>在定义全局变量的时候,一定要注意参数的套数和使用;同时要尽可能少的使用全局变量,在代码实现的条件下;
       尽量多使用指针,但是务必要注意它们的申请和释放;
    <2>在进行编解码函数的写作的时候,最好编解过程中使用的结构体的一致,因为这样会在代码写作的时候带来方便;
       同时编解函数要彻底,特别是对一些可选项来说;

5。工作时间长度大约2周时间(一周写作概要设计文档,一周写编解码函数)

6。开展的形式:编写详细设计文档,并且代码化;



2006年8月下至2006年9月上旬 -- 代码实现,以及代码调试,检错。
在做好上面的准备工作后,开始代码的写作
该阶段的工作分为2个部分:
1。依据模块和接口,基于概要设计文档完成代码设计,以及协调项目组的其他开发人员的工作;(编程规范)
2。调试和检错;

3。要注意的事情:
    <1>代码简洁为好(指的是单个函数的功能独立);
    <2>高度注意指针的使用,内存的申请和释放等;
    <3>尽可能多的添加关键变量和参数的打印函数;
   
4。工作时间长度大约2-3周;
5。展开的形式:自己写;

国庆节以来的工作安排 (一切都在进行中)

1。代码自测;
2。单元测试(一致性测试)
3。完毕后提交测试组进行集成测试;
4。定版本,版本升级;


过去半年多的一点感受:
1。在写《从测试到研发,我和协议栈》,认识了很多同行,半年多的时间过去了,感觉自己学的比较慢,
信息获取和交流比较慢;其中的原因有很多。外部环境和内部环境的变化,使我加强自身的积累变得非常的迫切;
外部环境的变化有:
1。3G人才的增多;
2。人才进步速度的快速;
3。市场薪酬的相对降低以及对人才的要求提高;
所以感觉压力很到,期望自己能够更加勤勉一些,努力一些!

一点点期望和关注:
1。最想能够有比较多的时间去好好的看一下协议;
2。能够把英语口语练好,强化英文写作;
3。能够和公司续签一年的合同,同时也把自己的参与的这个项目能够完整的做完;
  
2006年,和协议栈一起走过。
还是老规矩,留下我的MSN:hongdou584@hotmail.com.
期望认识更多的人,请教更多关于协议栈的事。
发表于 2006-10-21 19:51:00 | 显示全部楼层
呵呵,不错
点评回复

使用道具 举报

发表于 2006-10-22 18:27:00 | 显示全部楼层
不错,写的好.[em01][em01][em01]
点评回复

使用道具 举报

发表于 2006-10-23 21:35:00 | 显示全部楼层
你是凯明的??
点评回复

使用道具 举报

发表于 2006-10-23 21:39:00 | 显示全部楼层
那你到底负责哪个模块?MM? RR?
点评回复

使用道具 举报

发表于 2006-10-24 02:44:00 | 显示全部楼层
非常不错,我们中国的工程师缺的就是这种精神!
其实虽然术业有专攻,你的那点所谓专业知识从哪里来,还不是别人共享给你的?
人人为我,我为人人。
点评回复

使用道具 举报

发表于 2006-10-25 21:25:00 | 显示全部楼层
good.
点评回复

使用道具 举报

发表于 2006-11-22 23:19:00 | 显示全部楼层
人人为我,我为人人[em01][em01]
点评回复

使用道具 举报

发表于 2007-3-9 11:21:00 | 显示全部楼层
很有启发的文章,虽然我进入这个领域不久,但是很受感染
点评回复

使用道具 举报

发表于 2007-3-14 11:20:00 | 显示全部楼层
国内做协议栈的公司很少,所以能够有机会做协议是很难得啊!
点评回复

使用道具 举报

发表于 2007-3-17 10:56:00 | 显示全部楼层
佩服楼主的毅力,向楼主学习呀!
工作需要激情和责任感!
人人为我,我为人人!
点评回复

使用道具 举报

发表于 2007-4-19 16:17:00 | 显示全部楼层
工作需要激情和责任感!
点评回复

使用道具 举报

发表于 2007-6-30 12:02:00 | 显示全部楼层
一个新人能有这样的能力,很不容易,加油
点评回复

使用道具 举报

发表于 2007-8-1 18:48:00 | 显示全部楼层
很不错,顶起
点评回复

使用道具 举报

发表于 2007-12-4 06:42:00 | 显示全部楼层
[em05]
点评回复

使用道具 举报

发表于 2007-12-11 21:10:00 | 显示全部楼层
这篇文章很有感觉,加油啊
点评回复

使用道具 举报

发表于 2008-1-25 18:21:00 | 显示全部楼层
感谢!!!!!!!
点评回复

使用道具 举报

发表于 2008-1-31 16:10:00 | 显示全部楼层
"但是在我进公司的半年后,公司TD的协议栈就基本的做的算是比较稳定的了",离商用水平还早的,需要努力!
点评回复

使用道具 举报

发表于 2008-2-2 17:04:00 | 显示全部楼层
[em08]真的佩服你!
点评回复

使用道具 举报

发表于 2008-9-28 09:59:00 | 显示全部楼层
加油~~~很不错~~
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-23 02:18 , Processed in 0.054808 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表