你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

为什么不常见不用固件库或 HAL 的 STM32 新手教程?

[复制链接]
maxtch 提问时间:2017-12-9 22:38 /
阅读主题, 点击返回1楼
收藏 1 评论52 发布时间:2017-12-9 22:38
52个回答
maxtch 回答时间:2017-12-13 11:11:09
任风吹吹 发表于 2017-12-13 11:00
你真的认为库固定放在ROM内好?你认为所有人都认可吗?你有没有考虑过一旦出现问题的可追索性?库方式至 ...

ROM 固化的库不占代码空间,至少 NXP、TI 和 Infinieon 都在用。如果库有问题,芯片 ID 中会反映出芯片库版本,软件里面带上一个替换的函数和指针补丁就可以了。(这个时候我也只是带了一个替换函数,而不是整个库。)
maxtch 回答时间:2017-12-13 11:24:23
任风吹吹 回答时间:2017-12-13 11:44:14
本帖最后由 任风吹吹 于 2017-12-13 14:44 编辑
maxtch 发表于 2017-12-13 11:11
ROM 固化的库不占代码空间,至少 NXP、TI 和 Infinieon 都在用。如果库有问题,芯片 ID 中会反映出芯片库 ...

总算看出楼主写这个贴子的出发点了,F042F4/6,16K/32K FLASH,内置USB专用晶振,这么点空间的FLASH放整个HAL当然不可能了,如果对HAL进行配置,比如只保留HAL的USB部分,其他一概不要,或者其只需要使用到外设的LL部分,或者干脆自己使用寄存器方式。这样应该是可以的。看楼主的应用的复杂度,如果只是需要USB做些简单功能比如鼠标之类的,F042是可以实现的,大不了使用SPL或者自己使用寄存器了。如果单从技术角度出发的话,更复杂的应用,楼主是应该考虑换成F072了,毕竟042的价格定位如此,楼主说这么多,最希望的是继续F042的价格,但需要F072的FLASH大小吧
maxtch 回答时间:2017-12-13 18:50:06
任风吹吹 发表于 2017-12-13 11:44
总算看出楼主写这个贴子的出发点了,F042F4/6,16K/32K FLASH,内置USB专用晶振,这么点空间的FLASH放整个H ...

LightSwitchUSB 项目,同样的 GCC 工具链,只用 HAL USB 空白固件 -Os 优化等级都要 13kB。我现在完全不用 HAL,第三方无依赖 USB 库 + 手写其他所有驱动,整个东西加上业务逻辑不开优化都只有 9kB。这个数字是死的,你要辩驳就没有意义了。

在 042 上可以不用 HAL 解决问题,这些在 042 上写的驱动我也可以移植到 072/103/303/407 上照用不误。(其实定时、GPIO 复用这两个驱动我是从 303 上移植过来的。)这么看来,HAL 是不是就没有普适性了?我是花时间学会 HAL 然后看见 042 再回头去学习直接操作寄存器,还是一上来就直接用寄存器然后走遍四方都不怕?
maxtch 回答时间:2017-12-13 21:42:23
任风吹吹 发表于 2017-12-13 11:44
总算看出楼主写这个贴子的出发点了,F042F4/6,16K/32K FLASH,内置USB专用晶振,这么点空间的FLASH放整个H ...

再说一句,如果你的产品销量很大的话,用一颗便宜的单片机在产品的整个生命周期里面所节省的成本可远远多于几个工程师三天的工资。同样情况下,能用 042 我就不考虑 072 了。当年雅达利开发街机游戏《Breakout》的时候开给沃兹的奖金其实是很有道理的:现在少许多花一点研发成本,将来批量出货的时候省大钱。
kirbymore 回答时间:2018-3-1 17:57:31
maxtch 发表于 2017-12-9 23:17
好的,什么时候我来讲讲不用 HAL 直接捅寄存器做 STM32 编程,顺道兜售一下我的纯开源 STM32 开发板。呵 ...

楼主,出来了吗?我是以前都是纯汇编,现在想学STM32,看了几天论坛和demo,感觉一头雾水,希望你的纯开源早点出来
maxtch 回答时间:2018-3-1 18:27:13
kirbymore 发表于 2018-3-1 17:57
楼主,出来了吗?我是以前都是纯汇编,现在想学STM32,看了几天论坛和demo,感觉一头雾水,希望你的纯开 ...

全开源的板子早就出来了,就是没有内置外设不太好写教程,如果你想买我回头私信给你闲鱼链接(国外早就开卖了,国内还没正式上淘宝)。我在考虑拿正点原子 STM32F407 探索者来写,我自己有一片自己组装的 STM32F417 探索者,可以代码兼容的。
板子粉丝 回答时间:2018-3-2 08:36:43
以上讨论很有帮助,谢谢!
tovax 回答时间:2018-3-2 11:57:21
一直用固件库,固件库做的还是比较严谨和整洁的,但是HAL库就无语了,感觉HAL完全是出来捣乱的,把干干净净的代码弄的乱七八糟,也许是我没用好吧,从不用HAL库。
编译工具链,前几年用keil,后来一直用arm-none-eabi-gcc了,命令行操作,就几条常见的指令而已,习惯了之后就不用每次都去了解各家编译器的差别和繁琐的应用了。
zense 回答时间:2018-3-2 12:53:20
理解结构之后就觉得2个库没什么2样了.
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版