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

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

3天内不再提示

【大神课堂】如何完美避过嵌入式的深坑

GReq_mcu168 来源:未知 作者:steve 2018-04-22 16:16 次阅读

这次是要搭一个CANRS422的通讯平台,包括硬件环境和上层协议的控制逻辑。好久不做这种纯技术的工作了,我走了不少弯路,又一次误入嵌入式的深渊……很惭愧。

硬件方面,买的是ZLG的板子,我没想太多以为走程序就可以了,可是,国企,唉,最后还是自己做的线缆,这里耽误了一天的功夫……

还好,简单的活还是会的,用万用表测引脚、接点的对应关系,飞线,不过焊线功夫很撮,我还是老毛病想着只熔一点,其实熔一长截再把线对上就方便多了嘛!焊好后又测了一遍,就插上板卡了。

接下来就很没头脑了,板卡自带的调试工具不知道用,也不知道线缆是不是有问题。现在想来,其实很简单的——我就看了一下板卡驱动API说明,另外看了一点CAN规范的说明,连调试工具界面上的验收码、屏蔽码、帧ID、定时器等等都不懂,就开始蒙,哪有这样的!书倒是有,但是内容也多,我也没想着看,就继续一边看调试工具的源代码,一边看应用协议,其实没什么收获,花了两天时间,就是把通讯平台的基本框架搭了起来而已,严重的偏题……

到了第3天,我开始去网上查资料,突然意识到搞硬件的,都一个核心,所谓的控制器,也就是板卡的芯片是关键!于是开始以SJA1000为重点搜索,意识到一个严重的缺陷:我所有的困惑都在于对于这款芯片的基本操作原理不清楚!而且,芯片功能虽然很多,但是所谓“板卡”,就已经把很多方面封装到了驱动函数里面,只留下一些关键的知识需要去掌握。比如CAN控制器SJA1000,工程师需要理解的核心知识就是ID的验收,也就是地址匹配的原理和应用方法。花了半天时间把这部分理解、编程、实验验证。

但是,出现新情况:应用给的例子与实际结果不符!

我尝试去发现一些ID匹配的规律,未果,抓狂。期间灵感迸发,想到一个穷举性的办法,很快把2^11个ID跑了一遍,抓出匹配的,从而发现了规律,但是按照应用的规定、板卡的API说明、以及书中CAN的规范,无法理解。。。。到底是哪个出了错??

我继续实验板卡的例子程序,乃至机器数的big endian、little endian都怀疑了一遍,板卡API说明和书中CAN规范是吻合的。

我扩大战线,把验收的两种方式都看了一遍,从标准帧又看到了扩展帧,认定了应用规定的配置下,标准帧的11位验收是不可能得到实际中的结果的。翻PDF间,突然意识到一个矛盾的地方:“应用采用PeliCAN方式……使用标准帧”——这矛盾嘛!PeliCAN工作模式是支持扩展帧的好不好?!!

于是,恍然……愤怒……泄愤……重新在草稿纸上演算,释然。

接下来,才真正进入正题:CAN上层协议的编写、调试。无法是如何制定ID地址格式,数据帧组装、拆解、校验和计算之类的。这时,我已经开始意识到:应用层给的东西,太不可靠了。没有任何设计说明,我就小心翼翼的读了一下帧组装和校验的代码,一边加注释,花了一上午时间才看懂,也知道它可疑。于是另外写了一个,单步调试走了一遍,觉得还不可靠,又用草稿纸演算了一把,加了两个关于帧编号和尾帧长度的loop invariant断言,才放心,此时已经下午了,咬咬牙,接着调试,晚饭时候才通过所有断言。再挑了5个测试用例测了一遍,果然没问题了,至此确认:在某些特殊情况下,确实它错了。

吃完晚饭,想刚才写loop invariant的痛苦,有一次意识到:写程序,尤其是这种算法类程序,应该多用草稿纸演算的,效率可以更高些。。。。我本来知道应该这么做的,都怪当时急红了眼……绊蛮……

总结:什么样的活,有什么样的工作思路、工作模式。

模式1:关于物资—— 一般的东西,按程序走,不用费神;重要事项,自己动手,丰衣足食。

模式2:关于硬件—— 搞硬件的工程师,用芯片是基本功!要静得下心,看资料,理解快;有问题,想原理。

模式3:关于软件开发——基本功的问题,好好看书、练习;设计的问题,多总结,实用即可; 算法、调试的问题,多用草稿纸!


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

    关注

    5073

    文章

    19038

    浏览量

    303579

原文标题:我又掉进了嵌入式的深坑...

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式学习建议

    培训班的宣传所误导,而忽视实际嵌入式系统软硬件基础知识的学习。 ⑤要避免片面地单纯从“电子”或“计算机软件”角度认识嵌入式系统。前面说嵌入式系统是软件与硬件的综合体。因此,要逐步
    发表于 10-22 11:41

    什么是嵌入式?一文读懂嵌入式主板

    在现代科技浪潮中,嵌入式技术已成为支撑各种智能设备和系统运行的核心力量。那么,究竟什么是嵌入式嵌入式系统,顾名思义,是将计算机的硬件和软件嵌入到某种设备或系统中,以实现特定功能的计算
    的头像 发表于 10-16 10:14 548次阅读

    AMD 面向嵌入式系统推出高能效 EPYC 嵌入式 8004 系列

    AMD 凭借其 EPYC™ 嵌入式处理器不断树立行业标准,为网络、存储和工业应用提供卓越的性能、效率、连接与创新。今天,我们正以第四代 AMD EPYC 嵌入式 8004 系列处理器扩展这一
    发表于 10-11 13:58 695次阅读

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式主板如同是设备的“大脑”,主要功能是根据需要管理和控制设备
    的头像 发表于 09-30 10:05 383次阅读

    嵌入式linux开发的基本步骤有哪些?

    嵌入式Linux开发是一个复杂的过程,涉及到硬件选择、操作系统移植、驱动开发、应用程序开发等多个方面。以下是嵌入式Linux开发的基本步骤,以及每个步骤的说明。 硬件选择 在开始嵌入式Linux开发
    的头像 发表于 09-02 09:11 413次阅读

    嵌入式开发前景怎么样?

    嵌入式开发前景非常广阔,这主要得益于物联网、人工智能、大数据等技术的快速发展,以及嵌入式系统在各个领域的广泛应用。以下是对嵌入式开发前景的详细分析
    的头像 发表于 07-10 09:00 2536次阅读
    <b class='flag-5'>嵌入式</b>开发前景怎么样?

    嵌入式主板,你了解多少?

    嵌入式主板,也称为嵌入式计算机主板,是一种专门设计用于嵌入式系统的计算机主板。与台式机和笔记本电脑中使用的常规主板不同,嵌入式主板设计用于集成到更大的电子设备中,例如汽车、医疗设备或自
    的头像 发表于 04-17 15:11 1416次阅读

    嵌入式fpga是什么意思

    嵌入式FPGA是指将FPGA技术集成到嵌入式系统中的一种解决方案。嵌入式系统是一种为特定应用而设计的计算机系统,它通常包括处理器、内存、外设接口等组件,并且被嵌入到更大的设备或系统中,
    的头像 发表于 03-15 14:29 1202次阅读

    fpga是嵌入式

    FPGA(现场可编程门阵列)不是嵌入式系统,但FPGA在嵌入式系统中有着重要的应用。
    的头像 发表于 03-14 17:19 2167次阅读

    嵌入式工控机性能特点 嵌入式工控机应用场景

    嵌入式工控机性能特点 嵌入式工控机应用场景 嵌入式工控机是一种专门设计用于工业控制系统的计算机设备。它具有与传统计算机不同的性能特点,并且在各种工业领域中有广泛的应用场景。 一、嵌入式
    的头像 发表于 02-04 11:35 646次阅读

    嵌入式学习步骤

    嵌入式行业是一个涉及广泛领域的行业,嵌入式、物联网、人工智能、智能与科学、电子信息工程、通信工程、自动化工程、测控、计算机科学等专业在嵌入式系统中使得软件和硬件的结合更加高效,适合从事嵌入式
    发表于 02-02 15:24

    高端嵌入式实验平台

    一、整体概述 该嵌入式平台具有前沿性、专业性、高集成度、功能丰富等特点,平台涵盖嵌入式计算机技术、嵌入式硬件接口、嵌入式系统软件等关键技术点,硬件主板采用灵活的核心板+扩展板方式,核心
    的头像 发表于 01-29 09:55 490次阅读
    高端<b class='flag-5'>嵌入式</b>实验平台

    嵌入式系统的应用实例

    嵌入式系统的三个基本要素是嵌入性、专用性与计算机系统。
    的头像 发表于 01-22 09:57 1023次阅读

    啥是嵌入式嵌入式都有啥?薪资如何?前景如何

    嵌入式系统(Embedded Systems)是一种特殊类型的计算机系统,被嵌入到其他设备或系统中,用于执行特定的任务或控制特定的功能。这些系统通常设计用于特定的应用领域,具有特定的硬件和软件要求
    的头像 发表于 01-17 16:39 871次阅读
    啥是<b class='flag-5'>嵌入式</b>?<b class='flag-5'>嵌入式</b>都有啥?薪资如何?前景如何

    什么是嵌入式系统?嵌入式系统的具体应用

    嵌入式,一般是指嵌入式系统。用于控制、监视或者辅助操作机器和设备的装置。
    的头像 发表于 12-20 13:33 2420次阅读