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

楼主: hizuki (ayaka)   2017-12-20 10:10:10
※ 引述《Severus5566 (正义 从天而降)》之铭言:
: 小弟学士社会新鲜人
: 应征上一个写韧体的职务
: 但大学只有学过C语言跟玩过一点Arduino
: 说来惭愧 自己不知道怎么阅读DataSheet
: 然后用韧体来控制硬件(写C语言)
: 有爬文 好像控制暂存器还是内存位置?
取决于平台,但是多数平台,尤其是流行的ARM,是控制内存。
但是,但是,虽然这么说,实际上只是某个控制器的暂存器映射
到virtual address当中去而已。
然而所谓控制暂存器的场合,在后者平台也有,但是不是直接的。
比如说,一个外置芯片采用SPI接口和控制芯片,然后我要控制这个外置芯片
做什么,就是写指令到这个芯片当中的暂存器中。而且这种东西一般
是没有办法映射到virtual memory中的(PCI应该很少见吧)
: 恳请大大给点指点
: 可请写韧体的前辈们给我开些书单 让我工作之余时能自己看
我不建议一开始就看芯片的Datasheet,因为您压根不知道要做什么。
我回答您第一个问题,关于控制暂存器还是内存当中某个位置,
说明您对电脑体系没有个概念。不过也不要要紧,我这边简略说明
一下这项工作,希望对您有帮助。
我以控制MEMS传感器为例子,您需要了解什么呢?
1. 我的控制芯片如何和传感器通信
2. 传感器能提供何种资料?资料能表示什么
先从问题一来,传感器通信无非就是SPI, I2C两种为主,还有一些
用signal bus或者采用ADC的可以等下再讲。
那您就要去了解一下SPI和I2C协定的内容,是如何传输资料的。
当然不了解细节也是可以,因为项目一可是拆分成下面的细节:
1.1. 通信协定本身的资料传输方式,电气与信号原理
1.2. 控制芯片上是否有提供符合这个协定的控制器?(多数有)
1.3. 如何操作控制芯片上的控制器?(多数都有提供API)
如果没有遇到性能问题,或者通信障碍,多数只要了解1.3就可以了。
这个是多数工程师打交道的地方了。
现在我们来看项目二,例如一个速度传感器,我要如何读取速度
资料出来?
2.1 如何上电,初期化被控制芯片(例子中是个传感器)
2.2 读取某个方向的速度(一般有3个轴向的),需要读取
那几个暂存器?
2.3 传感器上如果资料生成后存储于何处?如何不漏地读取资料?
2.1和2.2是比较需要看Datasheet,反正流程都差不多。
2.2无非就是看看Datasheet当中,如何换算一下读出的数值到需求的
单位上,因为有的时候是把16bit资料拆成两个8bit暂存器中去,
或者是把整数和小数点拆开之类的。或者需要利用某个暂存器中
表示的范围进行换算。
2.3是比较需要关于程式的知识,大概就是需要了解一下FIFO和Interrupter
之类内容。
但是进行到项目二,您只是完成了主管的初期任务吧?重要的控制器
拿到传感器传输的资料可以做什么?这个就是专业领域的问题了。
可能要用传感器的讯息控制电机,或者算出机构的姿态,从而
控制一下别的什么设备。控制别的设备就有回到项目一和项目二了。
大概说明了一下工作内容,至于推荐图书,我自己其实不是搞这个领域,
MCU没有摸很多,我要找找合适的书推荐。最好请版上先进推荐。
: 目前状态:主管给我一些厂商的范例程式码,可是韧体的函式库里面注解不多
: 所以读起来很吃力,也不确定自己理解的是不是对的
: 就像是去GitHub挖一笔资料来看 但不知道有哪些函式可以应用
: 或是这些函式或变量从哪个H档引用来的
我不清楚您主管给的是控制芯片的资料,还是被控制芯片的资料。
如果是完全新人的话,一般来说给的都是控制芯片的资料,
然后让人在评估板上run demo来熟悉一下环境,再慢慢教授控制
别的芯片。我是不建议一开始两个个项目同时进行的,会困扰的,
一个一个来比较好。而且也不符合以后的开发方式,多数的将来都是
只替换掉当中的一个而已。
作者: Severus5566 (正义 从天而降)   2017-12-20 10:43:00
感谢大大回应 看来关于MCU我什么都不懂 所以希望有没有推荐的工具书可以让我快速上手的 毕竟不能一直追着别人问
作者: frank010180 (量仔~)   2017-12-20 13:42:00
推好文分享

Links booklink

Contact Us: admin [ a t ] ucptt.com