我现在已经学了c语言,也学了嵌入式,但是我想问一下,我要是给嵌入式写程序,是不是应该学点别的,听别人说还要学数据结构和算法,也不知道是不是真的,还有,算法有好多种,我应该学哪一种?
追答你问出这样的问题,说明对嵌入式领域的理解还比较模糊。如果你的方向是做一名嵌入式领域的工程师,那么你应当做好的准备是“随时学习需要的知识”,而不是“提前准备好所有知识”。因为嵌入式领域的特点是“杂”,举几个例子:
51单片机多用于系统控制,你要把它玩转,除了对它编程,还要知道周边器件是怎么工作的,这就要求你对数字电路的知识比较丰富;
DSP多用于数字信号、图像等处理,如果你没有傅利叶变换、小波变换等方面的数学知识和信号系统知识,你可能就难以处理现实问题;
ARM、PowerPC这一类芯片和X86的CPU本质上是一样的,但是它们的寄存器结构、缓存、换页方式都不一样,如果你不了解这些cpu的特性,写出来的程序可能性能不够好;
FPGA这类芯片更加底层,需要你对很多硬件机制,如时钟、FIFO、DMA、布局布线有所了解。
你觉得这些知识是可以全部“提前掌握”的吗?所以我觉得你需要转变一下思路,在面对一个实际工程的时候,先把它的知识需求理出来,再有针对性地进行学习,然后尝试并完成它。这样随着工程经验的增加,你的水平自然就提高了。
硬件领域很“高深”,也很酷,但你不用觉得自己“空”,只要你的学习能力够强,就等于已经具备了全部能力。
嗯,谢谢
😊
这个我知道,嵌入式我已经学了,我只是单指给硬件编程而已,还要学点什么才可以顺利用c语言给硬件写出程序