Re: [请益] 韧体新鲜人请益

楼主: kjlopin (kjlopin)   2017-12-20 11:02:39
※ 引述《Severus5566 (正义 从天而降)》之铭言:
: 小弟学士社会新鲜人
: 应征上一个写韧体的职务
: 但大学只有学过C语言跟玩过一点Arduino
: 说来惭愧 自己不知道怎么阅读DataSheet
: 然后用韧体来控制硬件(写C语言)
: 有爬文 好像控制暂存器还是内存位置?
: 恳请大大给点指点
: 可请写韧体的前辈们给我开些书单 让我工作之余时能自己看
: 目前状态:主管给我一些厂商的范例程式码,可是韧体的函式库里面注解不多
: 所以读起来很吃力,也不确定自己理解的是不是对的
: 就像是去GitHub挖一笔资料来看 但不知道有哪些函式可以应用
: 或是这些函式或变量从哪个H档引用来的
要学韧体,主要就是动手做,如果有连动外部电路,光看程式码没用。
厂商的范例程式码通常都有搭配开发板,如果整体范例不复杂,就先单步执行,
看暂存器值(旗标 Flag)的变化。了解为什么这些Flag会被改变,这些改变又会
触发什么事件。
还有了解周边电路在做啥。不要只会低头写程式,适时跟EE和ME交流,
知道他们在做什么,且让他们知道你会什么,可以做什么,什么需要他们配合,
这样如果出问题,你才有跟他们讨论的筹码。
再来是C语言。
写韧体一定要学会用指标!!!
写韧体一定要学会用指标!!!
写韧体一定要学会用指标!!!
指标(Pointer)不但可以加快程式执行速度,也能节省占存器和内存的空间。
尤其到后面写大型专案,更是要节省占存器和内存的使用。
最后是Arduino,这套件出来,说不上是好是坏。好处是它简化学习韧体的流程,
套件接一接,简单判断式写一写,API呼叫一下,WOW,会动了耶~
可坏处也就在这里,Arduino把占存器设定简单化,只要呼叫API就可以,但有
人就会以为,暂存器设定只要呼叫API就好,没说这方法不好,我现在也这样用
,但如果你不去了解这API做了啥,如去设定占存器,是否会跟其他API冲突,
这样出问题,你就无法去追根。
书单的话,去各大厂找他们的教育训练资料还比较有用。
最后,为了你和以后接手的人着想,程式码的注解一定要写...
作者: twinkle38 (UgoU)   2017-12-20 11:09:00
为何指标是写"index" instead of "pointer"?
楼主: kjlopin (kjlopin)   2017-12-20 11:29:00
我习惯是用index,pointer才是对的,我改一下
作者: hizuki (ayaka)   2017-12-20 11:36:00
我觉得啊其实与其说pointer, MCU更需要reference因为多数平台上malloc都是废的,有实现也分不出来多大东西
楼主: kjlopin (kjlopin)   2017-12-20 11:47:00
用优化是可以释出很多啦,但通常不会用,因为会有灵异事不知道你所指的reference是指什么?
作者: hizuki (ayaka)   2017-12-20 12:23:00
c++引入的东西。非ARM的MCU跑去搞memory management真少
楼主: kjlopin (kjlopin)   2017-12-20 13:19:00
ㄆ,因为不太需要,如果不用到RTOS系统,RAM会用多少大概都知道
作者: yamakazi (大安吴彦祖)   2017-12-20 13:21:00
reference是C++才有 但我看过的MCU FW几乎都是C而不是C++
作者: hizuki (ayaka)   2017-12-20 13:49:00
我其实只是提概念而已,我早就不在这个领域了
作者: badyy (nick)   2017-12-20 17:05:00
"我早就不在这个领域了" XD
作者: cia1099 (阿兜啊)   2017-12-20 17:57:00
虚标准的用嘴巴写code
作者: odahawk (羊皮狼)   2017-12-20 23:53:00
哦..."我早就不在这个领域了" XD
作者: hizuki (ayaka)   2017-12-21 01:18:00
讨论语言设计有什么好嘘的,你说说看动态内存管理的用处
作者: tommie (tommy)   2017-12-22 08:47:00
mcu只有大多只有单核,某些情况下不要被中断应该都还好因为大都自己排程XD
作者: james732 (好人超)   2017-12-22 21:36:00
指标会多透过一层间接取值又多占一个位置耶…在嵌入式系统用粗暴的全域变量反而比较有效率又省空间(当然滥用全域变量搞成bug地狱这种问题就不用我说了)

Links booklink

Contact Us: admin [ a t ] ucptt.com