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

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

3天内不再提示

嵌入式开发如何快速进阶?有捷径?

小麦大叔 来源:小麦大叔 2023-08-16 15:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式软件开发有没有什么捷径?不定期会收到类似的问题,我只想说:嵌入式软件开发没有捷径

说实话,有这种想法的人,我其实想劝你放弃。对于绝大多数普通人,一步一个脚印就是捷径。

当然,这个问题可以换个方式问,比如:如何才能提升自己编程水平?或者:如何提升自己技能?

对于大部分人,特别是初学者,我觉得应该从两个方面提升自己技能:

1.多参考、多阅读优秀的开源代码;

2.多实践,动手敲代码;

为啥要参考别人的代码?

你要相信,这个世界上大部分人都是普通人,你的写代码的很多想法别人都已经想过,而且实践验证过。

最终能保留下来的,而且运用在优秀开源项目中的代码,这种代码就具有参考价值。

肯定有人会反驳,认为**代码很La圾,自己写的代码肯定比**代码要好。有这种想法的人,往往自己很菜,却非要认为自己很牛逼。

当然,不排除有那种确实很牛逼的人,但这种人又有多少呢,反正我自认为我是一个普通人,我要向优秀的人学习的地方还有很多。

何为优秀的代码?

何为优秀的代码?可能每个人的定义不同,每个人的侧重点也不同。

易读易懂、结构清晰、逻辑清晰、方便移植......等等包含了所有优点的代码,就是优秀的代码?我觉得不是!

人无完人,代码也肯定多少都存在“瑕疵”,或者说多少存在有你认为不满意的地方。

我认为优秀的代码,首先,它能被许多人使用,并运用在许多成功的项目中。比如:一套控制算法代码,能成功应用在机械臂、机器人无人机等项目中,它就是优秀的代码。

其次,它具有优秀代码的一些基本特性,比如上面说的易读易懂、代码清晰、方便移植等。

这种对于学习者不排斥的代码也算得上优秀的代码,比如:一个模块的驱动程序、一套串口通信协议。

再次,就是代码更多细节,比如:代码排版格式、注释、命名等。

哪里有优秀的代码?

我觉得程序员不应该问这样的问题。我反过来问你吧,你看大家一般把代码开源在什么地方?

当然是代码托管的网站啊,GitHub是目前世界上最大的代码托管平台:

https://github.com/

当然,除了GitHub之外,还有国内的Gitee代码托管平台:

https://gitee.com/

这俩代码托管平台众多大公司都在上面贡献了优秀的代码,微软、谷歌、腾讯、阿里这些公司都有代码库。

同时,你会发现平时我们使用的一些开源代码,在GitHub平台上都有。比如:RTOS内核及组件、MCU厂家驱动代码、通信协议等源代码。

多动手写代码

实践是检验真理的唯一标准,这句话相信大家都听说过。

如果只看书不动手敲代码就能掌握程序开发,你觉得这个程序员能写出好的代码吗?很多人基础理论很不错,但实践操作起来各种问题、各种不懂。

比如下面这样写:

if(i = 1)
{
//...
}

你可能认为是对的,编译也是对的,但实际这代码有bug。

编程是一个很注重实践的工作,因为现实中存在各种不确定的因素,比如:你写的函数,有可能因为传入的参数过大导致内存溢出。

代码写出来了还不算有本事,编译0警告0错误,并成功运行起来,你学的理论知识才发挥了作用。

编程习惯

这里说的多动手写代码,不只是为了写代码而写代码,写代码的同时,要培养良好的编程习惯。

如果养成了不良的编程习惯,后期改变可能很难。

比如函数、变量以“中文字母”方式命名:

int DianYa;


intCaiJiDianYa(void);

还比如:不写注释、源代码不分类、命名混乱等。

很多人初学的时候可能都没有意识,想到什么就写什么,所有功能在main中就实现了。

这里就要回到上面的内容,多参考别人优秀的代码。当然,不同阶段参考的代码不同,初学者可以参考一些基础教程配套的代码,有工作经验的工程师应该多参看成功项目的源代码。

看看别人怎样命名、怎么写注释、怎么将代码分类等。

编程思维

做小项目时,可能几百行代码,一个main就搞定了,这时你可能觉得编程思维不重要好。

但项目做大了,你就会发现以小项目的编程方式不能完成了,这个时候就要考虑软件架构、结构化、模块化了。

对于初学者来说,一下就要掌握软件架构、模块化设计可能有点难,但是,可以慢慢培养自己的编程思维。

举一个简单的模块化的例子,你做一个小车,你把“运动部分的代码归为一类(模块化),对应的文件命名可以为bsp_motion,app_motion,函数命名为 Motion_xxx 等。

当然,还有很多地方,你可以都归类为 Motion,比如:

#define MOTION_PWM_TIMx              TIM9
#define MOTION_PWM_TIM_CLK           RCC_APB2Periph_TIM9
#define MOTION_PWM_TIM_GPIO_CLK      RCC_AHB1Periph_GPIOE
#define MOTION_PWM_TIM_PIN           GPIO_Pin_5
#define MOTION_PWM_TIM_GPIO_PORT     GPIOE
#define MOTION_PWM_TIM_SOURCE        GPIO_PinSource5
#define MOTION_PWM_TIM_AF            GPIO_AF_TIM9
#define MOTION_PWM_TIM_OCxInit       TIM_OC1Init
#define MOTION_PWM_TIM_SetComparex   TIM_SetCompare1
#define MOTION_PWM_COUNTER_CLOCK     10000000

其实,说的再多,看的再多,不如自己行动起来敲代码,过程中你肯定会遇到各种各样的问题。

你用心解决这些问题的过程,就是你成长的过程 最后,如何证明你编码水平提升了?答:回看自己以前代码,如果觉得烂,那就说明你提升了。

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

    关注

    18

    文章

    1169

    浏览量

    50220
  • 模块化
    +关注

    关注

    0

    文章

    359

    浏览量

    22792
  • 代码
    +关注

    关注

    30

    文章

    4976

    浏览量

    74373

原文标题:嵌入式开发如何快速进阶?有捷径?

文章出处:【微信号:knifewheat,微信公众号:小麦大叔】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    低代码可视化,破解嵌入式开发高门槛难题

    在工业控制、智能硬件、物联网快速发展的今天,嵌入式开发作为核心支撑技术,其高门槛却成为行业发展的绊脚石。专业编码要求高、新人上手慢、项目迭代滞后等问题,制约着人才储备与技术普及
    的头像 发表于 03-25 14:13 189次阅读
    低代码可视化,破解<b class='flag-5'>嵌入式开发</b>高门槛难题

    嵌入式单片机开发学习路径

    学习C语言 C语言是嵌入式开发的基础。掌握C语言的基本语法、指针、结构体、内存管理等内容是进入嵌入式开发的前提。 2. 硬件知识 2.1 认识单片机 单片机是嵌入式系统中的核心器件。了解单片机
    发表于 02-09 15:42

    嵌入式开发常用函数速查表

    嵌入式开发中,掌握常用函数的用法可以大大提高开发效率。无论是单片机初学者还是一定经验的工程师,熟悉函数库和调用方式都是必备技能。今天,我们为大家整理一份嵌入式开发常用函数速查表,覆
    的头像 发表于 01-19 09:06 464次阅读
    <b class='flag-5'>嵌入式开发</b>常用函数速查表

    什么是嵌入式应用开发

    概述 所谓的嵌入式应用开发就是在嵌入式操作系统下进行开发、软硬件综合开发嵌入式应用
    发表于 01-12 16:13

    探索MCIMX93-QSB开发板:开启嵌入式开发新征程

    探索MCIMX93-QSB开发板:开启嵌入式开发新征程 在嵌入式开发领域,一款优秀的开发板能为工程师们提供强大的支持,帮助他们快速验证想法、
    的头像 发表于 12-24 14:55 1042次阅读

    性能与性价比兼得!迅为RK3562开发板开启嵌入式开发新选择

    性能与性价比兼得!迅为RK3562开发板开启嵌入式开发新选择
    的头像 发表于 12-23 16:10 1691次阅读
    性能与性价比兼得!迅为RK3562<b class='flag-5'>开发</b>板开启<b class='flag-5'>嵌入式开发</b>新选择

    从小白到大牛:Linux嵌入式系统开发的完整指南

    );③社区论坛(CSDN 嵌入式板块、Stack Overflow、知乎嵌入式话题);④进阶书籍《Linux 内核设计与实现》《嵌入式 Linux 系统
    发表于 12-16 10:42

    分享一个嵌入式开发学习路线

    法,这些语法在嵌入式开发中至关重要。 2. 技能进阶期(2-3个月) 从51单片机过渡到主流的ARM Cortex-M系列(嵌入式就业核心平台),学会使用STM32单片机,掌握嵌入式开发
    发表于 12-04 11:01

    嵌入式开发的关键点介绍

    嵌入式开发在现代科技中扮演着非常重要的角色。随着物联网的发展,嵌入式系统的需求也越来越大。嵌入式开发不仅需要开发人员具备深入的硬件知识和编程经验,还需要不断学习新的技术和工具,以满足不
    发表于 11-13 08:12

    GT2440嵌入式开发系统用户手册

    电子发烧友网站提供《GT2440嵌入式开发系统用户手册.pdf》资料免费下载
    发表于 10-28 17:05 2次下载

    恩智浦如何攻克两大嵌入式开发难题

    在我们的身边,嵌入式系统无处不在。而随着技术的进步和应用的拓展,今天的嵌入式开发也面临着诸多新课题、新挑战。
    的头像 发表于 10-27 09:28 2021次阅读

    嵌入式从入门到进阶,怎么学?

    嵌入式从入门到进阶,怎么学? 嵌入式学习的核心是 “软硬结合的技术壁垒”,科学分层才能高效突破。以下是从入门到高阶的精简路线,帮你避开弯路: 1、基础奠基层:构建技术底座 C 语言聚焦 指针、结构体
    发表于 09-02 09:44

    新一代嵌入式开发平台 AMD嵌入式软件和工具2025.1版现已推出

    AMD 2025.1 版嵌入式软件和工具是面向新一代嵌入式系统开发而打造的综合平台,全面加速概念构想到部署落地。 2025.1 版嵌入式软件和工具的新 增功能 AMD
    的头像 发表于 08-20 09:15 4201次阅读

    嵌入式开发就业还有前景吗?

    嵌入式的发展前景如何呢?随着科技的飞速发展,嵌入式开发在各个领域的应用越来越广泛,因此嵌入式开发的就业前景也备受关注。以下将从智能家居、医疗设备、工业控制、汽车电子、航空航天等方面,探讨嵌入式
    发表于 07-16 10:47

    嵌入式开发入门指南:从零开始学习嵌入式

    随着物联网、智能硬件的发展,嵌入式开发成为热门技能之一。以下将为初学者提供一份详细的嵌入式开发入门指南,涵盖学习路径、必备工具、推荐资源等内容。 1. 嵌入式系统的定义与应用嵌入式系统
    发表于 05-15 09:29