看了很多的回复, 都支持Linux的, 不能说 不好吧. 但是这东西, 真心是个大工程, 属于技术上的广度问题.
我认为,目前为止, STM32的平台上, 原子的应用 在 实验室水平, 以及在 教新人的 会与不会这个程度上, 是够用了. 基本每个芯片的每个外设 都有解释 和应用了. 是足够了.
但是在实际的工作的应该上, 深度不够. 应该说完全不够. 这部分,恰恰是 新人在学了之后,实际工作中,应该更需要的东西吧.
比如: 原子了教了 CAN的使用, 但是具体的深度上, 对于CAN的管理, 各个错误信号的管理,如何是CAN不正常的时候, 自动实现 它的恢复 等等, 也就是 软件鲁棒性上的东西.
又比如: 开门狗 怎么用, 喂狗代码放哪里比较合适, 为什么放那里, 窗口开门狗怎么用,调试的时候,怎么利用这个开门狗 等等
又比如: uart, 实验代码很简单. 接收发送字符就行. 实际中,经常是建立在UART上的 各种协议. 典型的MODBUS, 怎么实现好, 怎么写, 另外其他相关协议的介绍. 再UART错误的时候, 如何实现 它的自动恢复.
还有写代码,如何写 更能防止一些 软件的不稳定.
基本上, 每一个外设, 都有扩展的东西, 值得挖的. 实验代码和工作中用 ,经常不一样. 一个是功能性的实现就行, 一个是 更稳定更强壮的代码.
另外 ; STM32的内存那么大, 相信大家 工作 , 只要稍微复杂一点点的项目, 基本 都不可能是裸机了吧. 那么就上操作系统了.
对于操作系统, 其实也一样, 目前为止, 原子教的 还是怎么用的问题. 是个会不会的问题.
但是利用操作系统,写出合理的代码, 还没交过.
比如:一般 操作系统, 时钟多少合适,怎么选取. 高带宽代码怎么去分配, 低带宽代码怎么分配. 任务划分, 以什么为主. 中断代码怎么写合适. 通讯代码 怎么和 任务来交互 等等东西太多了.
怎么样的任务间同步, 用什么系统服务,用邮箱呢 还是信号量 之类,
总之我认为, 这以上2方面的东西, 就够做一年了. 恰恰是初学者在"会"了, 之后 更需要的东西. |