地点:

自由职业者

杨振华

项目意向
职位名称:
工作地点:
工作类型:全程集中
单价(天):860元
工作经验:

擅长技能:

C++


平台工作经历
其他工作经历
D-Link成都研发中心
2008-05-01 ~ 2019-01-01
职位名称:工程师
薪水:0/月
项目描述:

软件/互联网开发/系统集成

个人职责:

[无线研发一部] 公司简介: 全球领先的无线网络设备制造商 工作性质: 全职 职位级别: 中级职位(两年以上工作经验) 职责和业绩: 我目前就职于D-Link成都研发中心无线一部,从事无线AP firmware的研发,我的主要工作项目和经历如下: 项目: 移植u-boot OS: Linux Chip: Cavium OCTEON Plus(MIPS64) 工作: 负责把U-boot移植到一块新板子上以及以后的maintain工作,实现的功能包括: 系统加载、支持网络启动、支持芯片擦写和firmware升级 总结: 第一次在MIPS的板子上移植U-boot,加深了对u-boot的软件架构和工作原理的认识。更加深入的学习了MIPS处理器的架构,内部寄存器和流水线作业原理。针对一颗实例芯片,认真阅读其datasheet,比较MIPS和ARM处理器的实际应用差异,掌握了MIPS的地址空间分配以及MIPS如何通过地址空间控制对cache的访问和MMU的地址映射。掌握了u-boot在MIPS启动过程中需要设定哪些功能寄存器以及如何重定位代码到SDRAM。了解u-boot引导MIPS有别于引导ARM的地方。 项目: AP Array协议 OS: Linux 功能: 这是一个在同一个局域网内批量设定多个AP的上层应用协议。该协议支持三个角色: Master、BackupMaster和Slave。在建网的时候,网管只需要设定好角色为Master的AP的参数,再把其余的AP的角色设定为BackupMaster或者Slave,其就会自动的去跟Master同步参数,这样大大减少了网管重复性的设定工作。BackupMaster在正常情况下和Slave是没有区别的,只有在Master离开网络时(出故障),BackupMaster就会自动改变自己的角色为Master,负责继续维护AP Array的工作。当原来的Master回来时(解除故障),当前的Master又会回到以前BackupMaster的角色,归还Master的权限。 总结: 这是本公司自定义的一个应用协议,我除了参加协议的编码实现外,还参加了协议定义过程中的各种讨论。除了考虑到和旧协议的兼容性外,更多的还要考虑到以后协议的扩展,大大加强了自己的逻辑思维能力。 项目: TR069协议 OS: Vxworks 功能: 这是一个由DSL论坛开发的,旨在帮助运营商远程管理大量网络设备的应用协议。该协议有监控、设定、诊断和升级firmware等功能。比如中国电信在全省甚至全国架设一台ACS服务器,然后设定全省或全国的无线AP上电后都主动连接到该ACS服务器上去同步参数或者升级firmware,而且每隔一个时间周期要主动上传和自己目前工作状态相关的数据。当出现异常时,ACS服务器会根据该AP上传的数据来判断AP目前的状态。该协议数据包采用SOAP封装,用HTTP协议完成握手,通过URL访问ACS服务器完成数据的交互。 总结: 这个项目是公司抽调了无线、宽频和交换机等几个部门的人在一起合作开发的。多个部门的人在一起开发,更加强调协调与团队精神,同时考虑各个部门产品的差异性,兼顾多个部门的利益。我在其中负责的是SOAP的封装与解析,以及XML树的生成。通过这个协议的开发,使我在代码的逻辑性和健壮性方面都有很大提高。

使用技能:

微星科技股份有限公司
2006-03-01 ~ 2008-04-01
职位名称:工程师
薪水:0/月
项目描述:

软件/互联网开发/系统集成

个人职责:

[企业平台解决方案] 公司简介: 全球第三大主板和第一大显卡制造商 工作性质: 全职 职责和业绩: 在微星科技股份有限公司研发基于IPMI规范的BMC firmware的工作经历如下: 时间: 2006/3--2006/5 描述: 接受开发语言、电路原理、服务器架构、IPMI规范、项目开发流程等基础培训,期间和两个一起实习的同学共同完成毕业设计Pluto(一个类似MSN的即时通讯工具)。 时间: 2006/6--2006/12 SDK: Multi-2000、ThreadX Chip: Pilot(ARM9E)、ADT7462 功能: 1、monitor: 所有的sensor(温度、电压、风扇)都直接挂在HW Monitor(ADT7462)上,处理器通过SMBus循环的去扫描挂在HW Monitor上的sensor值,如sensor异常,则记录到event log中,点亮警示LED并采取相应措施(通知管理员、关机或重启)。 2、smartFan: 当处理器在扫描sensor值的过程中,如果发现温度的值升高,同时也把系统风扇的PWM值调高,让风扇转速加快,降低服务器的工作温度。 3、KVM: 把视频总线上的graphic信号打包通过网络传到远端客户机,并且接受远端鼠标键盘的输入,不管是机器启动过程中还是进入OS状态下,管理员都能远程控制服务器。 4、虚拟存储: 把远端的存储设备(U盘或硬盘)通过网络虚拟到本地。 总结: 该产品为面向高端用户的产品,各个功能都做得比较强大,但是KVM和虚拟存储也会因为网络带宽影响而使其性能大打折扣。KVM不得不把桌面截图按比例缩小后传送出去,虚拟存储也只能上传一些比较小的文件(比如刷BIOS或者firmware)。 时间: 2007/1--2007/5 SDK: HighPerformance、ThreadX Chip: H8、Winbond83793D、Winbond83627HF 功能: 1、monitor、smartFan 2、SOL: 在BIOS里面设定打到显示器上的字符信号同时打到COM口上,处理器负责把打到COM口上的信号拦截下来打包通过网络传送给远端客户机,并且接受远端鼠标键盘的输入。 总结: 该产品主要面向低端用户,因为很多服务器的OS都是Linux,而且管理员都是在命令行模式操作,所以为了节约成本用SOL已经足够,不需要KVM。另外在这个项目出现一个问题,风扇高速转动的时候抖动得很厉害,用示波器去测量PWM信号发现信号的方波会出现不均匀的情况。最终确定原因为扫描sensor的时候要去读83627HF Bank0的register,控制PWM的时候要去写83627HF Bank2的register,Bank的切换过程导致PWM信号出现抖动的情况,这也许是芯片设计的失误,为了解决这个问题不得不重新layout把PWM控制信号接到83793D上去。此问题也说明嵌入式软件开发应该紧密的结合硬件,软件的问题有可能是硬件导致,硬件的问题也许可以通过软件来规避。 时间: 2007/6 SDK: Windows XP、TurboC 描述: 自己用C写了一个通过KCS对项目进行自动测试的Utility(代码3万多行)。该工具在dos系统下通过LPC接口和BMC进行通讯,按照用户设定的条件进行自动测试,自动分析返回的数据并且在UI上显示出来。 总结: 这是一个自己单独设计的测试程序,代码包括UI和底层驱动都是用C语言实现,整个架构都是应用面向对象的思想完成,尤其是C语言的指针在其中得到了很巧妙的应用。 时间: 2007/7--2007/9 SDK: Linux、TPC/IP 描述: 参与公司的刀片服务器项目,参与公司内部刀片服务器规范的讨论与制定,并和组员用多台主机在Linux系统下通过网络实现了模拟刀片服务器的demo。当把一台主机的网线插到Hub上,Manager Plane (MP)会detect到并且告知Manager Module(MM)给他分配power让他开机,当把网线拔掉时,MP也会detect到并且点亮相应的LED灯,同时告知MM回收power,如果MM发现power不够用时,会根据决策机制下命令给相应的blade关机。我在其中负责的是MP模块。 总结: 这个项目是公司的第一个blade项目,也是我第一次参与一个比较大型的系统讨论与整体设计,使我的整体架构思维得到了锻炼,同时也加深了对Linux系统和TCP/IP协议的了解。 时间: 2007/10--2008/4 SDK: Multi-2000、ThreadX Chip: ASpeed2050(ARM9E) 描述: 参与LightHose项目。该项目属于公司刀片服务器项目的软件模块,主要是为公司即将生产的刀片服务器准备好IPMI firmware,把以前公司的IPMI firmware从1.5版本升级到2.0,增加新的IPMI功能。我在其中负责的是传输数据的加密与认证,KCS river。 总结: 由于刀片服务器有别于普通的机架式服务器,其电路和设计方案完全改变,芯片也完全更换,所也基本上所有的Driver都重新写。此项目主要式锻炼了自己Debug Driver的能力和锻炼了自己如何与芯片厂商沟通,获得芯片厂商的支持。

使用技能:

教育经历
中南民族大学
毕业
所学专业:计算机科学与技术
最高学历:本科
  • 技术能力:
  • 工作态度:
  • 工作成果:
收藏
立即预约