tag 标签: 嵌入式系统

相关帖子
相关博文
  • 热度 3
    2024-8-16 14:12
    266 次阅读|
    0 个评论
    技术发展比以往任何时候都要迅速,每天我们都能见到新产品和功能,它们可以完成各种难以想象的任务。这不仅仅是因为移动应用和计算机;而是因为嵌入式系统和物联网(IoT)设备,它们在我们的日常生活和工业自动化等行业中迅速变得司空见惯。 这些设备几乎靠软件运行着一切:婴儿监视器、扬声器、健身追踪器、安全摄像头、恒温器和车辆等。 关于这个新世界,建筑师、MIT教授和作家Nicholas Negroponte说:“像空气和饮用水一样,我们只有在数字化缺席时才会注意到它,而不是它存在的时候。”按照内格罗蓬特的观点,我们已经让数字技术包围了我们,我们甚至在它缺席或造成功能安全或信息安全问题时才会注意到它。 我们所知道的物联网设备——包括嵌入式系统——具有通过互联网连接的处理器、传感器和其他特性。而当我们谈论嵌入式系统时,我们指的是在更大的数字、机械或电力系统中具有特定功能的处理器。嵌入式系统可以是物联网设备中的固件,或者是汽车、机器人、信用卡读卡器、手机、小工具、网络设备、医疗设备或几乎所有东西的电子控制单元(ECU)。 对于组织来说,工业4.0正在改变产品的制造和分销。随着嵌入式系统中增加更多组件以促进生产力和创新,物联网信息安全和工业4.0网络安全的挑战日益增加。再加上云计算与分析、机器学习和人工智能等技术,工业4.0突然成为一个更加复杂的环境——不仅跨越多设备和系统,还跨越多位置和贡献者。 管理维护物联网和嵌入式系统的信息安全(和功能安全)不能是一个孤立的过程。相反,组织和开发团队应该专注于保护物联网所依赖的软件,因为软件负责每个设备的性能,并促进设备和系统之间的通信。 C和C++对嵌入式系统软件安全的重要性 由于规模和成本限制,嵌入式系统中的软件使用有限的计算机资源进行处理、内存和供给。由于对轻量级软件的需求,像C和C++这样的编程语言在嵌入式系统中占据主导地位,就像它们目前在云中运行大多数服务器的Linux内核一样。虽然C++比C需要更多的计算资源,但更强大的微处理器可用性使C++成为全球数百万嵌入式系统的优选语言。 其他编程语言如Python也用于嵌入式系统,但C和C++是首选的主要语言。还有嵌入式C++(EC++),它是C++语言的一个子集,允许在具有完整C++语言主要功能的同时实现更大的空间和速度效率。当今的微处理器可以内置C++编译器,这让嵌入式系统编码变得更容易。 为嵌入式系统编码与任何其他类型的应用程序都不同。首先,你有资源限制,然后你必须为容错性、实时功能、可靠性设计,而且大部分时间没有停机时间。但更重要的是,代码必须是功能安全和信息安全的。想想嵌入式系统和物联网设备在医疗保健和制药行业,或汽车和航空行业的重要性。不仅这种技术的缺陷会很显眼,如果它们不功能安全信息不安全将成为一个关键问题。 静态分析对嵌入式系统和物联网软件安全的重要性 软件安全漏洞通常在开发过程中产生,因此在编码过程的早期发现它们可以预防未来的信息安全问题。确保源代码没有可能导致漏洞和缺陷的最重要的工具之一是静态分析。也称为静态应用程序安全测试或SAST,静态分析扫描应用程序的源代码,包括嵌入式系统和物联网的源代码,用于工业4.0网络安全应用程序。高度专业化的代码扫描根据使用的相应编程语言和框架查找特定缺陷。静态分析工具——如Perforce Helix QAC和Klocwork——报告符合编码标准的合规性。 静态分析工具使开发和安全团队能够分析数千至上百万行代码。它们寻找代码中的缺陷,并根据规则和政策执行编码标准。最重要的是,它们已经成为软件开发生命周期中不可或缺的一部分,并且是必须每次代码更改或在发布新版本之前定期在源代码上运行的步骤。 随着组织对嵌入式系统和物联网使用的增加,信息安全和功能安全的重要性也在增加,特别是在跨行业的任务关键功能方面。通过静态分析发现的功能安全性和信息安全性缺陷可以防止有缺陷设备的大规模生产,并节省资金和公司的声誉。 嵌入式设备中的安全性是关于减少漏洞数量。严重程度级别不同,高度严重的漏洞代表着更高风险的关键开发。在所有软件中,无论其部署在哪里,都有几种常见的漏洞类型。例如,远程代码执行和跨站脚本漏洞。在嵌入式系统和物联网设备中,大部分漏洞与内存缓冲区溢出、资源泄漏、不当的访问控制、加密问题和代码注入有关。这些是通过静态分析扫描在嵌入式系统中发现的一些最常见的嵌入式安全漏洞。 编码标准对嵌入式系统和工业4.0安全的重要性 正如前面提到的,C和C++在嵌入式系统中占主导地位。多年来,实施工业4.0和物联网的组织已经认识到所有代码中的信息安全性的重要性,特别是对于嵌入式设备中的C和C++,其中损失的成本可能不仅仅是财务方面。建立并不断改进编码标准就是为了帮助提高软件的安全性、可移植性、可靠性和可维护性的水平。静态分析除了在源代码中搜索缺陷和漏洞外,还可以应用于编码标准中规定的规则和建议。这对于需要验证符合行业标准的组织特别有用。嵌入式系统的常见编码标准示例包括MISRA、AUTOSAR和CERT。 行业标准也在解决工业4.0网络安全方面发挥作用:例如,IEC 62443针对自动化和控制系统中技术的开发和运行网络安全要求。该标准定义了一个安全软件开发生命周期,包括设计、实施、认证、验证、缺陷管理以及产品生命周期结束。 安全标准如ISO 27001,是一个信息安全标准,有助于确保制造厂内使用的设备是安全的,通常需要使用编码标准来支持合规性。即使在合规性之外,如上述IEC 62443所要求的,在软件开发期间使用编码指南也被认为是一种良好做法。 为嵌入式系统编码,遵循编码标准并将静态分析作为软件开发生命周期的一部分,将使我们的数字世界更加安全。 如果您想亲身体验为什么成千上万的开发者依赖Perforce静态分析工具,今天就注册免费试用。 ➡️ 注册您的免费试用marketing@polelonk.com
  • 热度 4
    2023-9-25 21:43
    718 次阅读|
    0 个评论
    ​ 芯驰 D 9 测评( 1 ) - - 硬件开箱 工业级的板卡和其他一般的“玩具”开发板还是要有所差别的,所以第一篇评测我们来仔细看看用料: 1. 全景图 ​ 编辑 用料足,做工扎实,接口都做了外围引出,底板配个铝合金外壳,就是妥 妥 的工业嵌入式主机。 2. 电源部分 ​ 编辑 电源12V输入 米尔配了 多国标准适配的电源适配器, 太贴心了,嵌入式工程师也要有进军全世界“遥遥领先”的愿景。 电源输入加了保险丝,压敏电阻,TVS(双向哦)三件套, 防护妥 妥 的,且具备防反接保护, 即便用外接电源也可以抵御现场大部分意外情况了。 3. 外围接口 工业应用肯定关注外部接口资源,系统提供资源包括: ​ 编辑 清晰明了,提供了快插端子。 ​ 编辑 原装宏发继电器 ,中 规 中矩,具体接口定义: ​ 编辑 ​ 编辑 金升阳隔离电源模块, 为CAN 和485提供隔离电源。 ​ 编辑 NSI1050--正品的485隔离收发器。另一路用的是NSI83085。 4. TYPE-C USB接口 ​ 编辑 用的ST的USB接口芯片1600A, 官方资料: ​ 编辑 USB host支持USB3.0 ,用的microchip的 USB5744-1 , 开发板硬件资料表明支持2路USB3.0. ​ 编辑 ​ 编辑 5. HDMI输出转接 国产龙讯 (合肥)LT8921B ​ 编辑 6. 其他 背面有一颗电平转换芯片,润石的RS0108 ​ 编辑 官方资料: ​ 编辑 小结: 用料足 小缺憾:调试串口用的比较多,能把CH340转换放在板上,用跳线选择就好了,毕竟杜邦线不牢靠,用一段时间就松垮垮的,容易带来各种调试问题。 ​
  • 热度 6
    2023-7-29 17:34
    2387 次阅读|
    0 个评论
    【嵌入式Linux系统开发】——嵌入式系统介绍 ▐ 我的圈子: 高级工程师聚集地 一、什么是嵌入式系统 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。 嵌入式系统与通用计算机系统的本质区别在于系统应用不同,嵌入式系统是将一个计算机系统嵌入到对象系统中。这个对象可能是庞大的机器,也可能是小巧的手持设备,用户并不关心这个计算机系统的存在。 嵌入式系统一般包含嵌入式微处理器、外围硬件设备、嵌入式操作系统和应用程序4个部分。嵌入式领域已经有丰富的软硬件资源可以选择,涵盖了通信、网络、工业控制、消费电子、汽车电子等各种行业。 二、嵌入式操作系统 嵌入式操作系统的一个重要特性是实时性。所谓实时性,就是在确定的时间范围内响应某个事件的特性。 著名的嵌入式操作系统有:VxWorks、Linux和Windows CE等。 三、嵌入式Linux的特点 Linux系统是层次结构且内核完全开放 。Linux是由很多体积小且性能高的微内核系统组成。在内核代码完全开放的前提下,不同领域和不同层次的用户可以根据自己的应用需要方便地对内核进行改造,低成本地设计和开发出满足自己需要的嵌入式系统。 强大的网络支持功能 。Linux诞生于因特网时代并具有Unix的特性,保证了它支持所有标准因特网协议,并且可以利用Linux的网络协议栈将其开发成为嵌入式的TCP/IP网络协议栈。 Linux具备一整套工具链, 容易自行建立嵌入式系统的开发环境和交叉运行环境 ,可以跨越嵌入式系统开发中仿真工具的障碍。Linux也符合IEEE POSIX1标准,使应用程序具有较好的可移植性。 传统的嵌入式开发的程序调试和调试工具是用在线仿真器(ICE)实现的。它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,完成监视和调试程序;但一般价格比较昂贵,只适合做非常底层的调试。 Linux具有广泛的硬件支持特性 。无论是RISC还是CISC、32位还是64位等各种处理器Linux都能运行。这意味着嵌入式Linux将具有更广泛的应用前景。 四、嵌入式系统的组成 4.1、硬件和软件 ①硬件 :嵌入式处理器、存储系统、(由IO连接)外设、时钟、复位、电源。 三大件全部集成: 嵌入式微控制器(单片机) ; 三大件部分集成: 嵌入式微处理器、IO集成在一个芯片内部,存储外置 ②软件 : 嵌入式操作系统 (可裁剪移植的、定制开发)、 应用软件 (专用性、固化) 嵌入式系统通常由嵌入式处理器、外围设备、嵌入式操作系统和应用软件等几大部分组成。 img img 4.2 硬件层 硬件层由嵌入式处理器、存储器系统、通用设备接口和I/O接口(如A/D、D/A、I/O等)组成。在一片嵌入式微处理器基础上增加电源电路、时钟电路和存储器电路(ROM和SDRAM等),就构成了七个嵌入式核心控制模块。其中,操作系统和应用程序都可以固化在ROM中。 4.3 中间层 中间层也称为硬件抽象层或板极支持包,它把系统软件与底层硬件部分隔离。板极支持包对上具有操作系统相关性,对下具有硬件相关性。设计一个完整的中间层需要完成两部分工作: ① 嵌入式系统的初始化,它包括片级初始化、板级初始化和系统级初始化。 ② 设计硬件相关的设备驱动 4.4 软件层 软件层由多任务操作系统(OS)、文件系统、图形用户接口(GUI)、网络系统及通用组件模块组成。OS是嵌入式应用软件的基础和开发平台;是一段嵌入式目标代码中的程序,系统复位后首先执行,相当于用户的主程序,用户的其他应用程序都建立在OS之上;是一个标准的内核,它将CPU时钟、中断、I/O、定时器等资源都封装起来,留给用户的是一个标准的API函数接口。 4.5 功能层与执行装置 功能层由基于OS开发的应用程序组成,用来完成对被控对象的控制功能。功能层是面向被控制对象和用户的,为方便用户操作,往往需要提供一个友好的人机界面。执行装置是指那些可以接受嵌入式计算机系统发出控制命令,执行所规定的操作或任务的设备和装置。在不同应用领域中,嵌入式系统的执行装置一般是不同的,应该根据具体的应用场合和系统所要求实现的功能选择不同的设备和执行装置。 五、Linux内核目录结构 arch :包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如i386、arm、arm64、powerpc、mips 等。Linux 内核目前已经支持30 种左右的体系结构。在arch目录下,存放的是各个平台以及各个平台的芯片对Linux 内核进程调度、内存管理、中断等的支持,以及每个具体的SoC 和电路板的板级支持代码。 block:块设备驱动程序I/O 调度。 crypto:常用加密和散列算法(如AES、SHA 等),还有一些压缩和CRC 校验算法。 documentation:内核各部分的通用解释和注释。 drivers :设备驱动程序,每个不同的驱动占用一个子目录,如char、block、net、mtd、i2c 等。 fs:所支持的各种文件系统,如EXT、FAT、NTFS、JFFS2 等。 include:头文件,与系统相关的头文件放置在include/linux 子目录下。 init:内核初始化代码。著名的start_kernel() 就位于init/main.c 文件中。 ipc:进程间通信的代码。 kernel :内核最核心的部分,包括进程调度、定时器等,而和平台相关的一部分代码放在arch/*/kernel 目录下。 lib:库文件代码。 mm:内存管理代码,和平台相关的一部分代码放在arch/*/mm 目录下。 net:网络相关代码,实现各种常见的网络协议。 scripts:用于配置内核的脚本文件。 security:主要是一个SELinux 的模块。 sound:ALSA、OSS 音频设备的驱动核心代码和常用设备驱动。 usr:实现用于打包和压缩的cpio 等。 include:内核API 级别头文件。
  • 热度 7
    2023-6-2 10:33
    682 次阅读|
    0 个评论
    干货 | 为什么RTOS系统要使用MPU?
    先说明一下,其实MPU有很多含义,我们常见的有两种: MPU: Memory Protection Unit,内存保护单元 ( 本文描述的内容 ) ; MPU: Microprocessor Unit,微处理器; 此外,可能还有人会与MPU-6050这类模块联系在一起。所以,大家不要把MPU搞混了。 为什么要使用MPU? 如果你开发的嵌入式项目,因内存溢出,或者内存故障等一些原因,造成了重大经济损失,或者造成了重大事故,你就能体会为什么要使用内存保护单元(MPU)了。 在嵌入式系统中使用内存保护单元(MPU ) 可以在开发早期及时发现因内存而导致的Bug,节省更多开发时间。 同时,在项目后期修改Bug,或者增加功能,可以减少修改文档和测试所需的时间。 也就是说,使用MPU会避免因为修改一个bug,而引起多个bug的情况(0生1,1生万物 )。 MPU如何实现内存保护? 简单来说,就是保护与当前执行的代码不相关的所有数据。 拿RTOS任务A和B来说: 任务A和B不应相互交互数据 ,但是存在一个错误,任务A可能会意外地写入任务B偶尔使用的某些数据,不会影响任务A的正确操作。但是,当任务B尝试使用损坏的数据时,任务B可能会意外故障。 如果没有配置MPU来阻止任务A写入任务B的数据,则该错误可能需要很长的时间供开发人员跟踪。如果错误很小,或者如果任务B很少使用该数据,则将很难解决该bug。但是,如果使用了MPU,则该bug就会及早被发现。 在某些体系结构上,MPU甚至可以帮助你检测NULL指针引用,因为你可以设置MPU区域以防止非特权代码访问内存0x0。 应用程序中一组设计良好的MPU区域可以很好的保护重要的内存区域,以防止出现特定的问题。 一个很好的例子是通过在MPU区域的末尾放置缓冲区来防止缓冲区溢出,你还可以将任务堆栈放置在任何非特权代码都无法访问的区域。如果这样做,则每个任务必须使用自己的MPU区域之一来设置自己对自己的堆栈的访问权限。 使用MPU的好处 无论是操作系统,还是裸机系统,如果没有防止恶意访问错误内存的能力,系统将有重大安全问题,以及安全漏洞的雷区。 使用的内存保护单元(MPU)有很多优势,MPU通常允许你以特权或非特权模式运行,并使用一组“区域”来确定当前正在执行的代码是否具有访问代码和数据的权限。 每个区域都是一个连续的内存块,具有该内存的一组权限,特权和非特权访问。与非特权代码的子集相比,特权代码往往可以访问大部分(但不是全部)内存。 在整个系统运行时中,这些区域不必相同。MPU区域可以根据每个任务进行修改,每个任务可以具有自己独特的区域集,这些区域在任务移至运行状态时进行配置。 这使你可以仅对需要代码和数据的任务设置访问权限,利用MPU的嵌入式操作系统将在每次上下文切换期间管理每个任务的区域和特权级别。 比如设置RTOS两个任务不同的内存保护区域: 上面这张图,大家都能看懂吧?Flash和内存区域被分别设置保护。 两个全局保护区域:Flash开头、RAM开头; 在Flash中,一部分仅限任务1访问,这部分不能被任务访问;同时,在Flash另外区域,仅限任务2访问,不能被任务1访问。如果这两部分区域被对方访问,则会生成生成MPU故障。 在RAM区域,同一部分区域,一个只能被读,一个只能被写入,如果不按约定操作,同样也会生产MPU故障。 什么时候不使用MPU? 通常有两种情况可以不使用处理器上的MPU功能: 一个简单的项目 一个对性能至关重要的项目 第1个很简单:一个非常简单的应用程序基本上没必要使用MPU,反而增加了系统的复杂性。不设置内存保护,RAM和外围设备的MPU区域,你自己一眼就能找到bug。 第2个对性能要求高的项目:在上下文切换时,设置内存保护,堆栈那些操作,有可能影响系统的实时性,从而导致系统异常。这个需要结合项目实际情况考虑用,还是不用MPU功能。 关注公众号“优特美尔商城”,获取更多电子元器件知识、电路讲解、型号资料、电子资讯,欢迎留言讨论。
  • 2023-4-20 09:55
    0 个评论
    北汇信息首次亮相ATC技术周,聚焦功能安全下的软件测试
    2023年4.11-12号,ATC汽车软件与安全技术周于上海嘉定举办,北汇信息首次作为参展商加盟ATC系列活动,李东昇经理受邀于ISO26262应用与发展技术分会场做出演讲。此外,北汇信息也在展览区摆出了展台,供客户们前来参观交流。 ATC汽车软件与安全技术周是由ATC汽车技术平台主办的技术交流活动,包括第七届汽车ISO26262功能安全应用与展技术峰会、第五届汽车信息安全技术峰会、第三届汽车域控制器技术峰会三大分会场。本次活动分线上线下两种参会渠道,到现场参加活动人数800+,线上观看直播人数6000+,活动现场约20家展台做出技术展览,方便客户在茶歇时进行参观交流。 北汇信息的软件测试经理李东昇先生在ISO26262功能安全应用与展技术峰会分会场分享了主题为“基于功能安全的智能驾驶软件测试解决方案”的主题演讲,和与会专家们探讨了功能安全对软件测试的要求,并分享了北汇信息的智能驾驶软件测试解决方案,受到广泛关注。 此外,北汇信息的展台处也是络绎不绝,很多客户在演讲开始前或者茶歇时到展台处进行交流。此次北汇信息重点展示了软件测试的解决方案,并带来了PiL(处理器在环)测试的演示模型,让客户更直观的感受到北汇信息软件测试的效率和便捷,获得了好评。 北汇信息很荣幸获得了ATC颁发的金辕奖-技术创新奖,李东昇经理上台领奖并致辞。北汇信息始终专注于汽车电子领域的新技术和新产品,为整车厂和零部件企业提供完整的研发、测试解决方案。从测试工具、专用测试设备、完整测试方案到实车测试服务,我们与我们的客户一起努力,让中国的汽车变得越来越安全、越来越舒适、越来越智能。 北汇信息持续发布汽车电子测试技术知识,欢迎关注!
相关资源