有点不是很清晰
1.

2.

需要补足的技能:
- shell指令--> Makefile -->shell自动化
- rootfs (buildroot)
- 添加开源app或者软件
- 添加本地文件make工程
- uboot
-
驱动和应用开发

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

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

学习建议:
(主要的)驱动
跟教程走一遍,驱动大全更新蛮多了,极简的 --> 多写个sensor驱动,屏幕或者usb设备 --> 不同平台的
关于后续的调试和实际的功能开发:可以看 1.网上的情景处理代码 2. 阅读内核别人写的接口驱动以及处理(利用source insight)3.搞一个模板,保存打磨 ,记录问题
调试:1.dmesg 查看情况,比如资源获取失败 2.通过/proc 查看 io资源 ,中断 等等然后去看设备树和驱动3.测试指令
环境配置:
学习shell,知道意思,知道编译过程,配置工具,有GPT就行,uboot编译 buildroot走一遍就行,定制系统走一遍
应用开发:
没啥特别的思路,写就行,ai提供优化思路或者自己试,抄也行,看别人的代码,做完,或者遇到问题,多留一些“好模块”的代码模板
主要想干驱动,配置板子,之后想学习ai的一些东西,就是模型部署,一步一步慢慢爬,从抄别人的再到自己的,再慢慢学点算法,再落实把。
立个贴,我将完成这些,并输出文档
最近手里拿了一块RK3576(学习安卓或者其他,比如游戏,模型),还有一块 stm32mp157当时配套买的只学驱动的,想想决定用其中一块自己来做全部的配置,当然其中我会夯实驱动,多买几块屏(虽然现在没工作也没钱),驱动多几个sensor,学习知识。没钱买屏幕,wifi模块,买散热。
