茅胜荣

📞 18862141982 📬 18862141982@163.com ✒️ blog 📷 vlog

🛈 个人信息

  • 男,1992 年出生
  • 求职意向:高级嵌入式软件工程师
  • 工作经验:5 年
  • 现居地:江苏省苏州市吴中区

🎓️ 教育经历

  • 硕士,苏州大学,电子科学与技术专业,2015.9~2018.7,GPA(3.9/4.0)
  • 学士,苏州大学,电子信息工程专业,2011.9~2015.7,GPA(3.8/4.0)

💼 工作经历

  • 乐鑫信息科技,芯片支持部门,嵌入式驱动工程师,2018.7 月至今

    • 芯片 bring up
    • SOC 外设驱动框架

🚵 卓越贡献

  • 设计实现通用序列收发器驱动框架

    event-driven, OOP, IR, encoder

    • 工厂模式分配 RMT 通道,发送和接收的接口隔离
    • 事务模型,每个发送通道拥有一个事务队列,不同事务按序执行
    • 应用适配器模式定义 RMT encoder,将应用层数据表示转译为 RMT 硬件符号,定义一套原生编码器接口
    • 组合设计模式,可自由组合原生编码器,为特定应用创建新的编码器
    • 传输层抽象,支持 DMA 与非 DMA 传输,接口层统一
    • RMT 驱动详见 GitHub 项目地址
  • 设计实现嵌入式以太网驱动框架

    mediator pattern, OOP, Ethernet

    • 中介器设计模式,分隔用户、MAC 层和 PHY 层
    • 多态设计,支持 ESP32 内部 MAC 控制器以及其他 SPI 接口的以太网模块
    • 驱动分层设计,LL + HAL + driver,降低驱动在不同芯片平台上移植的难度
    • 详见 GitHub 项目地址
  • 设计实现嵌入式LCD驱动框架

    RGB/YUV, I80, SPI, I2C, LvGL, OOP, LCD

    • 抽象出 panel_io 接口,统一 SPI/I2C/I80 对 LCD 模组发送命令与显存数据的操作
    • 抽象出 panel 对象,统一应用层对显存设备的操作,支持 RGB 接口的 LCD 和 panel_io 抽象接口的 LCD 设备
    • IO 接口与显存操作分离,LCD 控制器驱动可复用程度最大化
    • 适配 LvGL 库,对接异步接口
    • 详见 GitHub 项目地址
  • BSP 软件包

    BSP, Interface Segregation Principle

    • 定义并实现智能灯带 led-strip 设备的操作接口
      • 本质上一种 RMT 编码器实现,同时也预留了 SPI 外设的实现层
    • 定义并实现直流有刷电机 bdc-motor 设备的操作接口
      • 本质上 MCPWM 外设驱动的再封装,同时也预留了其他外设的实现层
    • 模拟 1-Wire 总线驱动和设备驱动 onewire_bus
      • 利用 RMT 硬件的独特性,实现全硬件化的单总线协议(非 GPIO bit-banging)
      • 使用迭代器模式实现总线上设备的扫描功能

🛠 技能清单

  • ★★★ C 语言面向对象建模与实现
  • ★★☆ Python、Bash
  • ★★☆ 计算机网络

🏆️ 职业认证

  • 职称: 江苏省中级专业技术资格
  • 网络: CCNA(920分), 全国计算机等级4级(网络工程师)
  • 语言: CET-6(511分)
  • 编程: 江苏省计算机等级3级(软件)
  • 竞赛: 全国大学生电子设计竞赛二等奖

⛵️ 业余爱好

  • 媒体: 用博客、视频记录工作与生活
  • 创客: 接触最新最好玩的创客玩具(树莓派, OpenWRT, XMOS, PSoC)