有点不是很清晰

1.

image

 2.

image

需要补足的技能:

  • shell指令--> Makefile -->shell自动化
  • rootfs (buildroot)
    • 添加开源app或者软件
    • 添加本地文件make工程
  • uboot 
    • image

驱动和应用开发

image

  •  linux系统框架(字符类设备 platform_driver 与设备树 platform_device),模块初始化到匹配device,到注册设备,生成节点过程
  •  熟悉接口api(子系统)和一些接口协议注意事项,需要了解诸如 mmap ,ioremap ,copy_from_user,copy_to_user之类的函数,部分需要学习设置比如ltdc设置寄存器
  • 硬件驱动和操作原理,阅读传感器datasheet
  • dmesg /proc,查看调用情况等等,发送测试指令打印数据等等

这是主要的,我主要想学的

底下的,哎不知道怎么说

image

  •  可能需要移植一些库(需要学会看英文手册,看清readme的结构,比如做法等等),支持一些功能,比如支持http的库,当然也可以一开始就加进去
  •  GUI,比如lvgl,对于不怎么紧急的定时事件,可以用lvgl自带的定时器,而不是操作系统的软件定时器(RTOS)
  • 线程同步,线程通信,专业的知识,算法等等,业务处理逻辑

image

 

学习建议:

(主要的)驱动

跟教程走一遍,驱动大全更新蛮多了,极简的 --> 多写个sensor驱动,屏幕或者usb设备 --> 不同平台的

关于后续的调试和实际的功能开发:可以看  1.网上的情景处理代码 2. 阅读内核别人写的接口驱动以及处理(利用source insight)3.搞一个模板,保存打磨 ,记录问题

调试:1.dmesg 查看情况,比如资源获取失败 2.通过/proc 查看 io资源 ,中断 等等然后去看设备树和驱动3.测试指令

环境配置:

学习shell,知道意思,知道编译过程,配置工具,有GPT就行,uboot编译 buildroot走一遍就行,定制系统走一遍

应用开发:

没啥特别的思路,写就行,ai提供优化思路或者自己试,抄也行,看别人的代码,做完,或者遇到问题,多留一些“好模块”的代码模板

 

 

主要想干驱动,配置板子,之后想学习ai的一些东西,就是模型部署,一步一步慢慢爬,从抄别人的再到自己的,再慢慢学点算法,再落实把。

 

立个贴,我将完成这些,并输出文档

最近手里拿了一块RK3576(学习安卓或者其他,比如游戏,模型),还有一块 stm32mp157当时配套买的只学驱动的,想想决定用其中一块自己来做全部的配置,当然其中我会夯实驱动,多买几块屏(虽然现在没工作也没钱),驱动多几个sensor,学习知识。没钱买屏幕,wifi模块,买散热。

 

5af73ed3f2e0a25249839c853ea85a24_720