杨绍军

1、熟悉IA-32 intel架构体系及常用指令,理解linux中断机制、内存管理、文件系统、进程/线程调度、信号机制、进程间通信等底层实现原理;理解Linux设备驱动模型,能熟练进行字符设备、块设备、网络设备等驱动程序的开发,熟悉linux常用的驱动开发接口。
2、熟悉ARM-v6架构体系及常用指令,熟悉linux引导初始化原理,能够自行编写引导程序并成功引导linux内核;熟练使用ARM 架构

  • 技术能力:
  • 工作态度:
  • 工作成果:
收藏 立即预约
项目意向
税前7500RMB/月 基本资料 890元 全程集中 - 工作经验: 擅长技能:
平台工作经历
其他工作经历
公司名称 拍档科技电子有限公司(上海)北京研发中心
在职时间 2011-02-01 ~ 2012-03-01
职位名称 Linux嵌入式驱动工程师
薪水 0/月
项目描述 软件/互联网开发/系统集成
个人职责 软件工程师职位级别: 高级职位(非管理类)职责和业绩: 2011/10----2012/01: Linux 设备驱动开发 责任描述: 个人负责开发及调试 项目描述: X86平台POS机USB接口客显驱动开发: 在unbuntu-11和fedora-11操作系统上,根据USB协议规范并按照Linux USB设备驱动模型要求,配置好相关的函数接口和参数,要点: 1、配置驱动支持的设备列表,初始化结构体struct usb_device_id。 2、初始化struct usb_class_driver: 文件打开(open)、数据读写函数(read write)=>初始化struct file_operation结构体=>初始化struct usb_class_driver结构体。 3、读写函数中的urb分配: 创建urb(usb_alloc_usb)=>分配urb缓冲区(usb_buffer_alloc)=>复制用户数据到该缓冲区中(copy_from_user)=>初始化urb(usb_fill_bulk_urb)=>向usb核心提交urb(usb_submit_urb)。 4、探测函数probe: 分配设备空间并初始化,探测设备端点地址和缓冲区大小,把相关信息保存到私有数据结构中,向usb核心注册设备(usb_register_dev函数)。 5、初始化struct usb_driver结构体,并向usb核心注册该驱动(usb_register函数)。 X86平台POS机钱箱驱动(用户态网络驱动,寄存器配置) : Ubuntu操作系统环境下,根据芯片手册在用户态通过系统调用配置相关寄存器,完成钱箱的打开和关闭操作,结果用socket编程通过网络反馈给客户端,并完成客户端钱箱状态的读取,实现网络远程打开钱箱设备的功能。 Arm平台POS机客显驱动(字符设备驱动模型) : 根据芯片手册配置相关寄存器,把客显驱动放在内核级别,根据字符设备模型,实现设备的内核态驱动,并编写上层应用程序测试代码。 2011/08----2011/09: lcd显示屏驱动 软件环境: Linux 2.6.28内核 硬件环境: 飞凌6410主板 开发工具: arm-linux-4.3.2交叉编译工具 责任描述: 1、工作需求: 原有的显示屏最大分辨率为480*272不符合公司要求,更换为800*600分辨率的LCD显示屏。 2、产品型号: Innolux display corporation公司lcd显示屏 800*600分辨率 3、主要工作内容: a 配置GPIO端口: 主要包括GPICON、 GPJCON寄存器(配置RGB线),GPECON(lcd电源初始化为输出模式)。 b 对照文档PROGRAMER’S MODEL部分配置主要的寄存器端口: MIFPCON: SEL_BYPASS[3]到显示屏正常模式而不是by-pass模式; SPCCON: LCD_SEL[1: 0]使用RGB I/F 样式 VIDCON0: 配置视频输出格式和显示器使能: VIDCON1: RGB I/F控制信号。 VIDTCON0: 水平同步时序配置 HBPD,HFPD,HSPW,硬件时序图 VIDTCON1: 垂直同步时序配置 VBPD,VFBP,VSPW硬件时序图 VIDTCON2: 配置水平及垂直分辨率(800*600) WINCON0: 设置bpp模式和窗口使能。 VIDOSD0A: 设置窗口的左上角位置(0)。 VIDOSD0B: 设置窗口水平和垂直大小(800*600) GPEDAT打开lcd电源. VIDCON0: 打开lcd控制器。 c 配置frambuffer内核驱动参数(在probe探测函数中) : 申请DMA缓冲区并保证和cache的一致性 dma_alloc_coherent 将设备的设备物理地址映射到虚拟地址 ioremap 4KB页对齐 具体的参数配置(颜色配置565、分辨率配置800*600) d 注册帧缓冲 register_framebuffer e 注册平台驱动 platform_driver_register f 驱动调试。
使用技能
公司名称 湖南华安科技有限公司
在职时间 2009-03-01 ~ 2010-12-01
职位名称 嵌入式软件工程师
薪水 0/月
项目描述 软件/互联网开发/系统集成
个人职责 软件工程师职位级别: 中级职位(两年以上工作经验)职责和业绩: 2010/04----2010/10: BootLoader引导程序 ARM嵌入式裸板驱动 软件环境: arm-linux-gcc、linux2.6.28 linux 内核 硬件环境: S3C6410(ARM11) 开发工具: Linux、arm汇编、GNU C 责任描述: 嵌入式软件开发工程师,编写底层代码,并调试通过 项目描述: 以ARM11为处理器核的S3C6410x SOC,内核为Linux-2.6.28。使用arm汇编语言实现第一阶段的cpu芯片级初始化,在程序前8k内容中完成cpu时钟初始化、外设初始化、栈初始化等工作,最后将bootloader拷贝到内存中运行。 C语言实现第二阶段的板级初始化。完成内存初始化、UART初始化等。编写网卡的裸机驱动,支持TFP下载,NandFlash裸机驱动,支持NandFlash擦除和烧写,支持裸板程序的测试,能够成功引导linux2.6内核。 该项目属于团队开发,部分代码的调试工作由同事完成。 2009/09----2010/02: 嵌入式远程视频监控系统 软件环境: Linux2.6.28内核 ARM汇编 GNU C 硬件环境: S3C2410处理器核 开发工具: vim编辑器 linux交叉编译工具包 make 责任描述: 团队开发,个人负责服务器端V4L2驱动接口的配置及多线程代码编写和调试。 项目描述: 1、选中V4L2驱动选项并编译内核,按照文档对V4L2驱动接口进行初始化。创建图像采集线程及客户端请求连接线程,实现2+N线程模式。 2、根据内核中对V4L2视频设备的支持,操作/dev/video设备文件,实现视频数据的采集,并建立多线程用于图像数据的采集和对客户端数据的发送。 3、该系统实现远程视频监控,主要用于煤矿、安防等领域。该项目属于团队开发,客户端的程序(在嵌入式设备上运行的代码)由同事完成。
使用技能
公司名称
在职时间 1999-07-01 ~ 2009-02-01
职位名称 网络工程师
薪水 0/月
项目描述 IT运维/技术支持
个人职责 网络工程师职位级别: 中级职位(两年以上工作经验)职责和业绩: 公司网络的日常维护工作及系统升级
使用技能
教育经历
院校名称 湖南邵阳学院
毕业时间
所学专业 热能工程
最高学历 本科