0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式新手该先学C语言还是先学汇编?

传感器技术 来源:传感器技术 2020-08-14 10:16 次阅读

嵌入式新手该先学C语言还是先学汇编?这是一个非常有争议的问题。而目前C语言已渐渐深入了,有意向学习嵌入式的不少,但是疑问是,学嵌入式能不能只用C 写程序?


观点1:汇编,只是一个语言工具。你要学习的,其实是ARM

想要搞精、搞深,汇编和计算机系统知识是必须的。尤其是对于底层嵌入式系统工程师来说,汇编是必须要掌握的。
首先系统启动、上电代码都是汇编,汇编不掌握,你如何知道系统是如何启动的?
想深入链接C语言的函数是如何调用的,参数是如何传递的,想了解指针的本质、函数名的本质,就要深入汇编级代码,通过反汇编,看底层指令是如何对C语言的高级特性进行处理的,这都需要汇编语言的功底。掌握汇编,是成为底层系统工程师、牛逼工程师的必备技能。
另外,汇编没那么恐怖,也就是那十几个常用的命令,再加上配套的伪指令,基本程序结构,半天就差不多了。与其花半天时间在这里纠结要不要学,不如赶紧学,技不压身。当然,学习汇编之前,你还要对CPU处理器架构、寄存器有一个了解,你要知道,汇编程序都是跟这些寄存器打交道的。学ARM汇编的话,需要掌握ARM处理器的基本架构、不同模式下的寄存器配置。了解之后,再去学习汇编,你会发现,你学习的哪里是汇编?学习的明明是ARM嘛!
汇编,只是一个语言工具,一些助记符而已。你要学习的,其实是ARM。

观点2:先学习C语言

一个合格的硬件工程师,应该都学,我推荐你先学习C语言,因为汇编入手太慢,写程序要以C为主,需要高速的或者底层的操作用内嵌汇编的方式完成。但是汇编和C同样重要,相互配合,缺一不可!

汇编的重要性:

帮助你从根本上彻底和完全了解芯片的结构和性能,以及工作原理,如何使用。

在小的芯片上实现小的系统。

系统的调试。尽管你使用了高级语言,在调试中可以帮助你了解C代码的性能和特点,甚至找到使用开发平台本身的BUG。

编写时序要求严格的代码,实现一些高级语言不易实现的功能。

从目前的技术和应用发展来看,对工程师的硬件要求越来越高。以我的观点,作为单片机和嵌入式系统开发真正的高手,应具备以下几个方面的综合能力:
1.硬件:模拟数字电路的雄厚基础,了解跟踪现在市场上的各种元器件的应用和发展,能够进行可靠、完善的电路设计以及PCB的设计。

2.软件:不仅需要精通汇编语言,也要精通C语言,要有好的单片机系统程序设计理念和能力,学校中学的那些分支结构、循环结构等基本原理远远不够!要有基本的数据结构的知识。否则你如何设计实现USB HOST读U盘的接口? 如何实现嵌入式WEB系统? 以及如何使用真正了解和使用RTOS? 具备计算机网络和数字通信的基础知识,从根本上熟悉和了解各种协议的构造和实现,如:UARTRS232、SPI、I2C、USB、 IEEE802、TCP/IP等。

3.计算机应用的高手

4.熟练阅读英文资料:热爱和喜欢电子技术,具备刻苦精神、踏踏实实,不弄虚作假,不浮躁。多动手,勤实践。有强烈的专业和钻研精神。最后一条最重要!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5063

    文章

    18992

    浏览量

    302543
  • 寄存器
    +关注

    关注

    31

    文章

    5305

    浏览量

    119916
  • C语言
    +关注

    关注

    180

    文章

    7597

    浏览量

    136022

原文标题:学嵌入式能不能只学C?真正的开发高手该会些啥?

文章出处:【微信号:WW_CGQJS,微信公众号:传感器技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    新手如何单片机

    学习电子基础知识:了解电压、电流、电阻等基本概念,以及它们在电路中的作用。 学习计算机体系结构:理解计算机的基本组成和工作原理,包括CPU、内存、输入输出设备等。 学习编程语言:单片机编程通常使用C语言,因此需要
    的头像 发表于 08-28 09:18 363次阅读
    <b class='flag-5'>新手</b>如何<b class='flag-5'>学</b>单片机

    嵌入式系统怎么?

    一系列课程和技术,包括但不限于以下内容: 1、基础知识:学习计算机组成原理、数字电路、模拟电路等基础知识,建立对计算机硬件的认知与理解。 2、编程语言:掌握至少一种嵌入式系统常用的编程语言,如
    发表于 07-02 10:10

    楫半导体亮相嵌入式盛会,强力赋能伺服控制与机器人领域

    2024年6月12日-14日,嵌入式盛会embeddedworldChinaConference2024在上海火爆开展。楫半导体(HPMicro)作为国产领先高性能MCU厂商与合作伙伴一起携
    的头像 发表于 06-15 08:18 432次阅读
    <b class='flag-5'>先</b>楫半导体亮相<b class='flag-5'>嵌入式</b>盛会,强力赋能伺服控制与机器人领域

    楫半导体与您相约嵌入式盛会embedded world China Conference2024

    2024上海国际嵌入式大会将于6月12-14日于上海世博展览馆3号馆隆重举办。楫半导体产品总监费振东“费教授”将于6月13日为大家带来《基于RISC-V高性能微控制器的网络互联和运动控制解决方案
    的头像 发表于 06-07 08:17 364次阅读
    <b class='flag-5'>先</b>楫半导体与您相约<b class='flag-5'>嵌入式</b>盛会embedded world China Conference2024

    请问学习stm是库函数好还是寄存器好?

    学习stm是库函数好还是寄存器好?
    发表于 04-28 07:18

    如何成为一名嵌入式C语言高手?

    如何成为一名嵌入式C语言高手? 嵌入式系统是当今科技领域的核心,而C语言则是
    发表于 04-07 16:03

    如何成为一名嵌入式C语言高手?

    如何成为一名嵌入式C语言高手? 嵌入式系统是当今科技领域的核心,而C语言则是
    发表于 03-25 14:12

    聊一聊嵌入式C语言

    作为一名嵌入式软件开发者,熟练掌握嵌入式C语言对我的日常工作至关重要。
    的头像 发表于 01-22 09:28 518次阅读

    C语言构建高效的嵌入式程序

    嵌入式工程师在编写C语言程序时,需要注重效率和清晰的思路。本文将通过解析经典问题“猴子选大王”来展示如何用C语言思维方式构建高效、清晰的程序
    的头像 发表于 12-21 09:27 590次阅读

    嵌入式C语言高手炼成之内存操作篇

    嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能
    的头像 发表于 12-11 17:20 481次阅读

    去耦滤波电容怎么布局摆放,到底是大后小还是小后大?

    去耦滤波电容怎么布局摆放,到底是大后小还是小后大?
    的头像 发表于 12-04 15:43 2275次阅读
    去耦滤波电容怎么布局摆放,到底是<b class='flag-5'>先</b>大后小<b class='flag-5'>还是</b><b class='flag-5'>先</b>小后大?

    晶科能源获授“ISSB国际可持续披露准则伙伴”证书

    近日,全球极具创新力的光伏企业晶科能源在北京国际可持续大会上获授“ISSB国际可持续披露准则伙伴”证书,先行一步学习和融入ISSB准则的框架与要求
    的头像 发表于 11-25 10:26 605次阅读

    嵌入式C语言的结构特点

    嵌入式开发中既有底层硬件的开发又涉及上层应用的开发,即涉及系统的硬件和软件,C语言既具有汇编语言操作底层的优势,又具有高级语言功能性强的特点
    的头像 发表于 11-24 16:16 631次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>C</b><b class='flag-5'>语言</b>的结构特点

    嵌入式系统的C语言

    电子发烧友网站提供《嵌入式系统的C语言.doc》资料免费下载
    发表于 11-18 14:39 2次下载
    <b class='flag-5'>嵌入式</b>系统的<b class='flag-5'>C</b><b class='flag-5'>语言</b>

    C语言进阶之嵌入式系统高级C语言编程

    电子发烧友网站提供《C语言进阶之嵌入式系统高级C语言编程.rar》资料免费下载
    发表于 11-18 10:32 1次下载
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>进阶之<b class='flag-5'>嵌入式</b>系统高级<b class='flag-5'>C</b><b class='flag-5'>语言</b>编程