作者Chienning (Chienning)
看板Soft_Job
标题Re: [请益] 韧体初学者
时间Mon Feb 17 04:42:48 2020
其实从Arduino开始玩也有很多乐趣,初始成本也低 (20€/35€)。
一张Uno(AVR)或是Due(ARM M3),加上电脑和一条USB线就可以开工了。
开发工具容易安装,不需要什麽设定,ATMEL (处理器厂商)的文件也算齐全。
Arduino开发软体内建的范例程式 (如那个九九乘法表) 简单易了解。
在初期可以多花点时间在程式技巧上,不用烦心那些开机程序。
随意写写小程式,也写些电脑端的程式,透过USB 序列埠让电脑和Arduino互动。
(比如说写个AES或是SHA,让慢到不行的AVR把电脑传过去的资料加密或算杂凑)
然後因为总总原因 (处理器就是慢、c/c++编译器很鸟),想把程式写快一点,
这时可以去电脑的暂存目录把执行档elf找出来,反编译成组合语言,
看看自己或编译器做了什麽蠢事,能不能在c语言做些最佳化。
还是不够快/小,就试试把程式的一小段改成in-line asm。
一开始在c程式内夹组合语言会有点痛苦,语法不直觉,但网路上有不少范例。
然後就是越玩越大,变成整个程式只有头尾是c,第三行开始就是组合语言,
(naked function) 这时就要了解AVR或是ARM的函式呼叫规则 (ABI)。
ps, Arduino的开发环境大概只能玩到这样了。
然後有个分支任务。Arduino内建了一些函式,控制处理器每根针角的输出入。
透过那个函式,最基本就是能控制板子上的那个LED灯。
试着去了解那些程式怎麽写的,印象七八年前的版本非常没效率,又肥又慢。
试着用c语言,自己去填记忆体 (SFR) 控制那些针角。顺便读一读处理器的手册。
玩到这边,还是只需要电脑/USB/Arduino,可能加买几棵LED。
之後还有兴趣,可以考虑买条除错线。ATMEL的除错线不贵,
但我印象开发环境是绑定visual studio的介面,... orz ...
有了除错线就能单步执行、修改暂存器和记忆体内容 ...
不要太依赖除错线,除错线是用来对付硬体bug的,软体bug请用自己的大脑 ;p
ps, Arduino的开发环境的软体,完全没有除错功能 :)
到这边就有最基本的能力,之後可以考虑升级玩有作业系统的平台。
或是像Zynq这类的FPGA,不过这又是另外一条很长的路了。
※ 引述《lihgong ( )》之铭言:
: 如果还在学校,就买以下东西开始玩,看看受不受得了
: 1. STM32F103最小系统
: 2. J-Link EDU(到mouser买最便宜)
: ps. 或是买STM的Nucleo板,上面有MCU和开发工具(STLINK可刷J-Link)
: 正版开发工具,报价不到1000元更便宜
: 这样子一套可以在3000块以内(更便宜当然有),试着让板子上的LED一闪一闪亮晶晶
: 当然,这里不要用Arduino,用STM32CUBE MX产生开机程式,然後操作他的GPIO点亮LED
: 试着读一下data sheet,追一下这段程式怎麽变成操作register,用用示波器,看看信号
: 如果第一步三千块花下去,觉得索然无味,那就这个领域你可能不适合而已
: 附带一提,示波器也不贵,淘宝一台4ch约莫台币10000就有了
: 接下来就看想玩点什麽,MCU外面的书很多,很容易找到有趣的题目
: 有些经验了,建议可以把作业系统挂上去,比如FreeRTOS,用起来又会是另一种感觉
: 实际上路了,缺什麽再去学,其实走这行就是得不断学习,天天都觉得自己什麽都不会
: ※ 引述《SmallBeeWayn (喵喵叫的蜜蜂猫)》之铭言:
: : ※ 引述《t7365443 (U彦)》之铭言:
: : : 各位版友好
: : : 目前就读国立科大硕(电机)
: : : 大学是资工系的
: : : 本人一直想走韧体工程师这方面
: : : 但是实验室又是做网路相关的
: : : 想找个网路设备的韧体的领域
: : : 想知道如果要走韧体这方面需要补足什麽地方
: : : 有什麽比较重要的地方 可以自己自学或是去修大学部的课
: : : 大学是稍微有玩过arduino开发版
: : : 但尤其是硬体这方面 (电子 电路 嵌入式系统等等)以前资工教的比较少
: : : 谢谢各位的意见
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 80.123.24.139 (奥地利)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1581885770.A.85C.html
1F:推 onegoman: 推。 02/17 06:45
2F:推 jeff40108: 真的推,对学校新手更友善 02/17 08:50
3F:推 single4565: 推 02/17 08:57
4F:推 pseudoman: 是说arduino做的东西 要怎麽产品化呢? 02/17 09:15
5F:推 csfgsj: 针对槟榔摊的闪烁灯泡,可以产品化。算是最初级的产品吧 02/17 14:36
6F:推 aria0520: 直接玩树莓派吧 02/18 22:53