娱乐城白菜论坛

业界广为流传的嵌入式软件测试十大秘诀

2019-01-18 14:29 ? 次阅读

在嵌入式软件开发过程中,一般来说,花在测试和花在编码的时间比为3:1(实际上可能更多)。这个比例随着你的编程和测试水平的提高而不断下降,但不论怎样,软件测试对一般人来讲很重要。

很多年前,一位开发人员为了在对嵌入式有更深层次的理解,询问了这样的一个问题:我怎么才能知道并懂得我的系统到底在干些什么呢?

面对这个问题有些吃惊,因为在当时没有人这么问过,而同时代的嵌入式开发人员问的最多的大都围绕“我怎么才能使程序跑得更快”、“什么编译器最好”等肤浅的问题。

所以,面对这个不同寻常却异乎成熟的问题,我感到欣喜并认真回复了他:你的问题很有深度很成熟,因为只有不断地去深入理解才有可能不断地提高水平。为了鼓励这位执着的程序员,把10条关于嵌入式软件开发测试的秘诀告诉了他。下面我们一起来看看。

这十条秘诀在业界广为流传,使很多人受益。本文围绕这十条秘诀展开论述。

1

懂得使用工具

通常嵌入式系统对可靠性的要求比较高。嵌入式系统安全性的失效可能会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失。这就要求对嵌入式系统,包括嵌入式软件进行严格的测试、确认和验证。随着越来越多的领域使用软件和微处理器控制各种嵌入式设备,对日益复杂的嵌入式软件进行快速有效的测试愈加显得重要。

就像修车需要工具一样,好的程序员应该能够熟练运用各种软件工具。不同的工具,有不同的使用范围,有不同的功能。使用这些工具,你可以看到你的系统在干些什么,它又占用什么资源,它到底和哪些外界的东西打交道。让你郁闷好几天的问题可能通过某个工具就能轻松搞定,可惜你就是不知道。

那么为什么那么多的人总是在折腾个半死之后才想到要用测试工具呢?原因很多,主要有两个。一个是害怕,另一个是惰性。害怕是因为加入测试工具或测试模块到代码需要技巧同时有可能引入新的错误,所以他们总喜欢寄希望于通过不断地修改重编译代码来消除bug,结果却无济于事。懒惰是因为他们习惯了使用printf之类的简单测试手段。

下面来介绍一些嵌入式常用的测试工具

源码级调试器

[Source-levelDebugger]      

这种调试器一般提供单步或多步调试、断点设置、内存检测、变量查看等功能,是嵌入式调试最根本有效的调试方法。比如VxWorksTornadoII提供的gdb就属于这一种。

简单实用的打印显示工具

[printf]

printf或其它类似的打印显示工具估计是最灵活最简单的调试工具。打印代码执行过程中的各种变量可以让你知道代码执行的情况。但是,printf对正常的代码执行干扰比较大(一般printf占用CPU比较长的时间),需要慎重使用,最好设置打印开关来控制打印。

ICE或JTAG调试器

[In- circuitEmulator]

ICE是用来仿真CPU核心的设备,它可以在不干扰运算器的正常运行情况下,实时的检测CPU的内部工作情况。像桌面调试软件所提供的:复杂的条件断点、先进的实时跟踪、性能分析和端口分析这些功能,它也都能提供。

ICE一般都有一个比较特殊的CPU,称为外合(bond-out)CPU.这是一种被打开了封装的CPU,并且通过特殊的连接,可以访问到CPU的内部信号,而这些信号,在CPU被封装时,是没法 “看到”的。当和工作站上强大的调试软件联合使用时,ICE就能提供你所能找到的最全面的调试功能。

但ICE同样有一些缺点:昂贵;不能全速工作;同样,并不是所有的CPU都可以作为外合CPU的,从另一个角度说,这些外合CPU也不大可能及时的被新出的CPU所更换。 JTAG(JointTestActionGroup)虽然它最初开发出来是为了监测IC和电路连接,但是这种串行接口扩展了用途,包括对调试的支持。

ROM监视器

[ROMMonitor]

ROM监控器是一小程序,驻留在嵌入系统ROM中,通过串行的或网络的连接和运行在工作站上的调试软件通信。这是一种便宜的方式,当然也是最低端的娱乐城白菜论坛。它除了要求一个通信端口和少量的内存空间外,不需要其它任何专门的硬件。

提供了如下功能:下载代码、运行控制、断点、单步步进、以及观察、修改寄存器和内存。因为ROM监控器是操作软件的一部分,只有当你的应用程序运行时,它才会工作。如果你想检查CPU和应用程序的状态,你就必须停下应用程序,再次进入ROM监控器。

Data监视器

[DataMonitor]

这种监视器在不停止CPU运行的情况下不仅可以显示指定变量内容,还可以收集并以图形形式显示各个变量的变化过程。

OS监视器

[OperatingSystemMonitor]

操作系统监视器可以显示诸如任务切换、信号量收发、中断等事件。一方面,这些监视器能够为你呈现事件之间的关系和时间联系;另一方面,还可以提供对信号量优先级反转、死锁和中断延时等问题的诊断。

性能分析工具

[Profiler]

可以用来测试CPU到底耗在哪里。profiler工具可以让你知道系统的瓶颈在哪里、CPU的使用率以及需要优化的地方。

内存测试工具

[MemoryTeseter]

可以找到内存使用的问题所在,比如内存泄露、内存碎片、内存崩溃等问题。如果发现系统出现一些不可预知的或间歇性的问题,就应该使用内存测试工具测测看。

运行跟踪器

[ExecutionTracer]

可以显示CPU执行了哪些函数、谁在调用、参数是什么、何时调用等情况。这种工具主要用于测试代码逻辑,可以在大量的事件中发现异常。

覆盖工具[CoverageTester]主要显示CPU具体执行了哪些代码,并让你知道那些代码分支没有被执行到哪里。这样有助于提高代码质量并消除无用代码。

GUI测试工具

[GUITester]

很多嵌入式应用带有某种形式的图形用户界面进行交互,有些系统性能测试是根据用户输入响应时间进行的。GUI测试工具可以作为脚本工具有开发环境中运行测试用例,其功能包括对操作的记录和回放、抓取屏幕显示供以后分析和比较、设置和管理测试过程(Rational 公司的robot和Mercury的Loadrunner工具是杰出的代表)。

很多嵌入式设备没有GUI,但常常可以对嵌入式设备进行插装来运行GUI测试脚本,虽然这种方式可能要求对被测代码进行更改,但是节省了功能测试和回归测试的时间。

自制工具

[Home-madetester]

在嵌入式应用中,有时候为了特定的目的,需要自行编写一些工具来达到某种测试目的。本人曾经编写的视频流录显工具在测试视频会议数据流向和变化上帮了大忙,帮公司找到了几个隐藏很深的bug。

2

尽早发现内存问题

内存问题危害很大,不容易排查,主要有三种类型:内存泄露、内存碎片和内存崩溃。对于内存问题态度必须要明确,那就是早发现早“治疗”。在软件设计中,内存泄露的“名气”最大,主要由于不断分配的内存无法及时地被释放,久而久之,系统的内存耗尽。

即使细心的编程老手有时后也会遭遇内存泄露问题。有测试过内存泄露的朋友估计都有深刻地体验,那就是内存泄露问题一般隐藏很深,很难通过代码阅读来发现。有些内存泄露甚至可能出现在库当中。有可能这本身是库中的bug,也有可能是因为程序员没有正确理解它们的接口说明文档造成错用。

在很多时候,大多数的内存泄露问题无法探测,但可能表现为随机的故障。程序员们往往会把这种现象怪罪于硬件问题。如果用户对系统稳定性不是很高,那么重启系统问题也不大;但,如果用户对系统稳定很高,那么这种故障就有可能使用户对产品失去信心,同时也意味着你的项目是个失败的项目。

由于内存泄露危害巨大,现在已经有许多工具来解决这个问题。这些工具通过查找没有引用或重复使用的代码块、垃圾内存收集、库跟踪等娱乐城白菜论坛来发现内存泄露的问题。每个工具都有利有弊,不过总的来说,用要比不用好。总之,负责的开发人员应该去测试内存泄露的问题,做到防患于未然。

内存碎片比内存泄露隐藏还要深。随着内存的不断分配并释放,大块内存不断分解为小块内存,从而形成碎片,久而久之,当需要申请大块内存是,有可能就会失败。如果系统内存够大,那么坚持的时间会长一些,但最终还是逃不出分配失败的厄运。在使用动态分配的系统中,内存碎片经常发生。

目前,解决这个问题最效的方法就是使用工具通过显示系统中内存的使用情况来发现谁是导致内存碎片的罪魁祸首,然后改进相应的部分。

由于动态内存管理的种种问题,在嵌入式应用中,很多公司干脆就禁用malloc/free的以绝后患。

内存崩溃是内存使用最严重的结果,主要原因有数组访问越界、写已经释放的内存、指针计算错误、访问堆栈地址越界等等。这种内存崩溃造成系统故障是随机的,而且很难查找,目前提供用于排查的工具也很少。

总之,如果要使用内存管理单元的话,必须要小心,并严格遵守它们的使用规则,比如谁分配谁释放。

3

深入理解代码优化

讲到系统稳定性,人们更多地会想到实时性和速度,因为代码效率对嵌入式系统来说太重要了。知道怎么优化代码是每个嵌入式软件开发人员必须具备的技能。就像女孩子减肥一样,起码知道她哪个地方最需要减,才能去购买减肥药或器材来减掉它。

可见,代码优化的前提是找到真正需要优化的地方,然后对症下药,优化相应部分的代码。前面提到的profile(性能分析工具,一些功能齐全IDE都提供这种内置的工具)能够记录各种情况比如各个任务的CPU占用率、各个任务的优先级是否分配妥当、某个数据被拷贝了多少次、访问磁盘多少次、是否调用了网络收发的程序、测试代码是否已经关闭等等。

但是,profile工具在分析实时系统性能方面还是有不够的地方。一方面,人们使用profile工具往往是在系统出现问题即CPU耗尽之后,而 profile工具本身对CPU占用较大,所以profile对这种情况很可能不起作用。根据Heisenberg效应,任何测试手段或多或少都会改变系统运行,这个对profiler同样适用!

总之,提高运行效率的前提是你必须要知道CPU到底干了些什么干的怎么样。

4

不要让自己大海捞针

大海捞针只是对调试的一种生动比喻。经常听到组里有人对自己正在调试的代码说shit!可以理解,因为代码不是他写的,他有足够的理由去 shitbug百出的代码,只要他自己不要写出这种代码,否则有一天同组的其它人可能同样会shit他写的代码。为何会有大海捞针呢?肯定是有人把针掉到海里咯;那针为何会掉在海里呢?肯定是有人不小心或草率呗。

所以当你在抱怨针那么难找的时候,你是否想过是你自己草率地丢掉的。同样,当你调试个半死的时候,你是否想过你要好好反省一下当初为了寻求捷径可能没有严格地遵守好的编码设计规范、没有检测一些假设条件或算法的正确性、没有将一些可能存在问题的代码打上记号呢?

关于如何写高质量请参考林锐的《高质量c++/c编程指南》或《关于C的0x8本“经书》。

如果你确实已经把针掉在海里是,为了防止在找到之前刺到自己,你必须要做一些防范工作,比如戴上安全手套。同样,为了尽能地暴露和捕捉问题根源,我们可以设计比较全面的错误跟踪代码。

怎么来做呢?

尽可能对每个函数调用失败作出处理,尽可能检测每个参数输入输出的有效性,包括指针以及检测是否过多或过少地调用某个过程。错误跟踪能够让你知道你大概把针掉在哪个位置。

5

重现并隔离问题

如果你不是把针掉在大海了,而是掉在草堆里,那要好办些。因为至少我们可以把草堆分成很多块,一块一块的找。对于模块独立的大型项目,使用隔离方法往往是对付那些隐藏极深bug的最后方法。

如果问题的出现是间歇性的,我们有必要设法去重现它并记录使其重现的整个过程以备在下一次可以利用这些条件去重现问题。如果你确信可以使用记录的那些条件去重现问题,那么我们就可以着手去隔离问题。

怎么隔离呢?

我们可以用#ifdef把一些可能和问题无关的代码关闭,把系统最小化到仍能够重现问题的地步。如果还是无法定位问题所在,那么有必要打开“工具箱”了。可以试着用ICE或数据监视器去查看某个可疑变量的变化;可以使用跟踪工具获得函数调用的情况包括参数的传递;检查内存是否崩溃以及堆栈溢出的问题。

6

以退为进

猎人为了不使自己在森林里迷路,他常常会在树木上流下一些标记,以备自己将来有一天迷路时可以根据这些标记找到出路。对过去代码的修改进行跟踪记录对将来出现问题之后的调试很有帮助。

假如有一天,你最近一次修改的程序跑了很久之后忽然死掉了,那么你这时的第一反映就是我到底改动了些什么呢,因为上次修改之前是好的。那么如何检测这次相对于上次的修改呢?没错,代码控制系统SCS或称版本控制系统 VCS(ConcurrentVersionControl,CVS是VCS的演化版本)。

将上个版本checkin下来后和当前测试版本比较。比较的工 具可以是SCS/VCS/CVS自带的diff工具或其它功能更强的比较工具,比如BeyondCompare和 ExamDiff.通过比较,记录所有改动的代码,分析所有可能导致问题的可疑代码。

7

确定测试的完整性

你怎么知道你的测试有多全面呢?覆盖测试(coveragetesting)可以回答这个问题。覆盖测试工具可以告诉你CPU到底执行了哪些代码。好的覆盖工具通常可以告诉你大概20%到40% 代码没有问题,而其余的可能存在bug.覆盖工具有不同的测试级别,用户可以根据自己的需要选择某个级别。

即使你很确信你的单元测试已经很全面并且没有 deadcode,覆盖工具还是可以为你指出一些潜在的问题,看下面的代码:if(i>=0&& (almostAlwaysZero==0||(last=i)))如果almostAlwaysZero为非0,那么last=i赋值语句就被跳过,这可能不是你所期望的。

这种问题通过覆盖工具的条件测试功能可以轻松得被发现。总之,覆盖测试对于提高代码质量很有帮助。

8

提高代码质量意味着节省时间

有研究表明软件开发的时间超过80%被用在下面几个方面:调试自己的代码(单元测试)。调试自己和其他相关的代码(模块间测试)。调试整个系统(系统测试),更糟糕的是你可能需要花费10-200倍的时间来找一个 bug,而这个bug在开始的时候可能很容易就能找到。

一个小bug可能让你付出巨大的代价,即使这个bug对整个系统的性能没有太大的影响,但很可能会影响让那些你可以看得到的部分。所以我们必须要养成良好的编码和测试手段以求更高的代码质量,以便缩短调试的代码。

9

发现它,分析它,解决它

这世界没有万能的膏药。profile再强大也有力不从心的时候;内存监视器再好,也有无法发现的时候;覆盖工具再好用,也有不能覆盖的地方。

一些隐藏很深的问题即使用尽所有工具也有可能无法查到其根源,这时我们能做的就是通过这些问题所表现出来的外在现象或一些数据输出来发现其中的规律或异常。一旦发现任何异常,一定要深入地理解并回溯其根源,直到解决为止。

10

请利用初学者思维

有人这样说过:“有些事情在初学者的脑子里可能有各种各样的情况,可在专家的头脑里可能就很单一”。有时候,有些简单的问题会被想得很复杂,有些简单的系统被设计得很复杂,就是由于你的“专家思维”。当你被问题难住时,关掉电脑,出去走走,把你的问题和你的朋友甚至你的小狗说说,或许他们可以给你意想不到的启发。

总结:嵌入式调试也是一门艺术。就想其它的艺术一样,如果你想取得成功,你必须具备智慧、经验并懂得使用工具。只要我们能够很好地领悟Oracle这十条秘诀,我相信我们在嵌入式测试方面就能够取得成功。

原文标题:嵌入式软件测试的十大方法

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式ARM】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

注:已经报名的学员请添加班级群669626886————————————————————————————————————
发表于 07-31 00:00 ? 7648次 阅读

STLINK的驱动和固件升级软件及使用教程资料免费下载

本文档的主要内容详细介绍的是ST LINK的驱动和固件升级软件及使用教程资料免费下载。
发表于 04-19 16:39 ? 34次 阅读
STLINK的驱动和固件升级软件及使用教程资料免费下载

AMD推出新款锐龙嵌入式R1000片上系统 进一步壮大其嵌入式产品家族

2019年4月16日,在台湾嵌入式论坛上,AMD(纳斯达克:AMD))宣布进一步壮大其锐龙嵌入式产品....
发表于 04-19 15:31 ? 109次 阅读
AMD推出新款锐龙嵌入式R1000片上系统 进一步壮大其嵌入式产品家族

円星科技将在台积电28奈米嵌入式闪存制程娱乐城白菜论坛开发SRAM Compiler IP

台湾新竹 - 2019年4月17日 -全球精品硅智财开发商円星科技(M31 Technology,台....
发表于 04-19 15:26 ? 43次 阅读
円星科技将在台积电28奈米嵌入式闪存制程娱乐城白菜论坛开发SRAM Compiler IP

更多学习资料在群 :嵌入式物联网群:922387798 python人工智能群:399932895 ...
发表于 04-19 14:57 ? 214次 阅读

发表于 04-19 14:54 ? 182次 阅读

一直要学嵌入式,现在终于有时间学了,但是不知道该怎么开始,是买本 书呢?还是买个开发板呢?还是 买些视频?关键是去哪里买?...
发表于 04-19 01:22 ? 17次 阅读

我在ucgui 创建了一个窗体(frame_time)怎么在这个窗体上实时显示RTC时间,我在rtc秒中断中调用了WM_InvalidateWindow(f...
发表于 04-19 00:11 ? 19次 阅读

刚移植完ucgu裸机不加操作系统, void main() { GUI_Init();//初始化uCGUI GUI_SetBkColor(GUI_BLUE);...
发表于 04-18 23:20 ? 15次 阅读

岁月的锤炼 圆口接口的键盘,2003年的 有人问这个键盘难道没有擦过吗?不是的,是擦不掉的岁月痕迹。如果有注意到细节...
发表于 04-18 14:03 ? 472次 阅读

详解Melexis嵌入式电机驱动器IC产品系列

基于Melexis高度集成的设计理念,将无刷直流电动机和直流电动机操作所必备的功能模块全部整合到单一....
发表于 04-18 12:31 ? 81次 阅读
详解Melexis嵌入式电机驱动器IC产品系列

软件设计的详细设计说明和软件需求的资料文档合集

软件产业存在的一个问题就是缺乏统一定义的名词术语来描述我们的工作。客户所定义的“需求”对开发者似乎是....
发表于 04-18 08:00 ? 18次 阅读
软件设计的详细设计说明和软件需求的资料文档合集

IT8511高度集成的嵌入式控制器的用户手册免费下载

IT8511是一款高度集成的嵌入式控制器,具有适合移动系统应用的系统功能。IT8511直接连接到LP....
发表于 04-18 08:00 ? 27次 阅读
IT8511高度集成的嵌入式控制器的用户手册免费下载

张瑞瑞 马晨普 引 言 当前,嵌入式设计人员在为远程控制或监控设备提供以太网接入时,使用的以太网控制器(如RTL8019、...
发表于 04-18 07:00 ? 60次 阅读

用了原子哥JPG解码码源,显示部分: 定义图片显示格式: unsigned short  JPG2BMP[256]={0}; GUI_BI...
发表于 04-18 06:35 ? 27次 阅读

如题,娱乐城白菜论坛手册中的this bit is RAO/WI是啥意思?只读(RO)?...
发表于 04-18 06:11 ? 20次 阅读

有一个列表框,怎么获得列表框的选中项呢?有大侠知道不? ...
发表于 04-18 01:21 ? 29次 阅读

自动生成数字密码软件1.71 PC版应用程序免费下载

本文档的主要内容详细介绍的是自动生成数字密码软件1.71 PC版一场游戏免费下载。
发表于 04-17 17:50 ? 29次 阅读
自动生成数字密码软件1.71 PC版应用程序免费下载

AMD锐龙嵌入式R1000 SoC为嵌入式行业带来了全新性能标杆

2019年4月16日,在台湾嵌入式论坛上,AMD(纳斯达克:AMD))宣布进一步壮大其锐龙嵌入式产品....
发表于 04-17 16:15 ? 87次 阅读
AMD锐龙嵌入式R1000 SoC为嵌入式行业带来了全新性能标杆

嵌入式卧龙荣信传动PLM项目分享

关键词:湃睿科技 , PLM 项目背景 卧龙电气集团辽宁荣信电气传动有限公司(简称卧龙荣信传动)是卧....
发表于 04-17 14:38 ? 57次 阅读
嵌入式卧龙荣信传动PLM项目分享

SPB嵌入式音频处理系统设计

FPGA(Field Programmable Gate Array)现场可编程门阵列,是在PAL,....
发表于 04-17 14:25 ? 37次 阅读
SPB嵌入式音频处理系统设计

嵌入式开发PCB过孔全介绍

过孔(via)是多层PCB的重要组成部分之一,钻孔的费用通常占PCB制板费用的30%到40%.简单的....
发表于 04-17 14:23 ? 57次 阅读
嵌入式开发PCB过孔全介绍

以太网接口的设计嵌入式系统是关键

目前,以太网(Ethernet)协议已经非常广泛地应用于各种计算机网络,如办公局域网、工业控制网络、....
发表于 04-17 14:21 ? 47次 阅读
以太网接口的设计嵌入式系统是关键

嵌入式智能家居系统的设计与实现

想象一下:在酷热的夏天或寒冷的严冬,当您工作一整天后带着疲惫的身躯在回家的路上时,空调已经开启并调节....
发表于 04-17 14:18 ? 70次 阅读
嵌入式智能家居系统的设计与实现

嵌入式税控POS系统中AT91RM9200有重要作用

据赛迪顾问统计,全国将有300~500万台的市场装机总容量及相关税务接口软硬件、配套设备、服务和培训....
发表于 04-17 14:15 ? 56次 阅读
嵌入式税控POS系统中AT91RM9200有重要作用

LPC213X通过μC/OS-II的多种移植方案

C/OS-II是可移植、适用于对安全性要求苛刻的剥夺型实时多任务嵌入式系统,简单易学,在工程应用和嵌....
发表于 04-17 14:11 ? 17次 阅读
LPC213X通过μC/OS-II的多种移植方案

STC单片机软件上电不烧写如何解决

主要是软件方面,在保证硬件绝对不出问题但还是达不到烧写目的时候,可以试试这几种方式:
发表于 04-16 17:28 ? 42次 阅读
STC单片机软件上电不烧写如何解决

DevOps Foundation? 是什么?DevOps塑造着软件世界的未来

DevOps Foundation? 课程旨在培养个人对 DevOps Foundation? 概念....
的头像 阿铭linux 发表于 04-16 12:46 ? 188次 阅读
DevOps Foundation? 是什么?DevOps塑造着软件世界的未来

嵌入式设计须知: MCU如何在扩展的SDRAM上运行程序?

在使用MCU的嵌入式系统设计中,当程序或者数据内存占用太大而无法放入片上闪存或SRAM时,开发者通常....
的头像 嵌入式资讯精选 发表于 04-16 11:14 ? 284次 阅读
嵌入式设计须知: MCU如何在扩展的SDRAM上运行程序?

MindMaster多平台思维导图软件免费下载

MindMaster 是亿图软件新上线的一款跨平台、多功能的思维导图软件。是帮助您快速成为思维导图设....
发表于 04-16 08:00 ? 27次 阅读
MindMaster多平台思维导图软件免费下载

LPC1768 uCOS II IAR官方版本软件应用程序免费下载

本文档的主要内容详细介绍的是LPC1768 uCOS II IAR官方版本软件应用程序免费下载。
发表于 04-15 08:00 ? 19次 阅读
LPC1768 uCOS II IAR官方版本软件应用程序免费下载

基于ARM的FPGA嵌入式系统实现

嵌入式微处理器S3C44BOX内置ARM7TDMI核,集成了丰富的外围功能模块,内部8 kB Cac....
发表于 04-13 10:36 ? 110次 阅读
基于ARM的FPGA嵌入式系统实现

2019 STM32峰会:汇聚解决中国新挑战的所有AI解决方案

人工智能对于今年的STM32峰会来说具有特殊的意义
的头像 STM32单片机 发表于 04-12 17:03 ? 523次 阅读
2019 STM32峰会:汇聚解决中国新挑战的所有AI解决方案

一种基于嵌入式的USB读写器设计

随着USB娱乐城白菜论坛和闪存娱乐城白菜论坛的飞速发展,移动存储设备的速度和容量日新月异,但在工业控制的上位机和下位机之....
发表于 04-12 16:57 ? 153次 阅读
一种基于嵌入式的USB读写器设计

PCB布线软件汉化版应用程序免费下载

本文档的主要内容详细介绍的是PCB布线软件汉化版应用程序免费下载。
发表于 04-11 16:51 ? 66次 阅读
PCB布线软件汉化版应用程序免费下载

TortoiseSVN 64位官方版应用程序免费下载

TortoiseSVN是一款可以管理文件和目录的实用工具。TortoiseSVN软件功能强大,可以帮....
发表于 04-11 08:00 ? 21次 阅读
TortoiseSVN 64位官方版应用程序免费下载

TeamViewer 14绿色不用安装的远程控制软件免费下载

TeamViewer是一个能在任何防火墙和NAT代理的后台用于远程控制的应用程序,桌面共享和文件传输....
发表于 04-11 08:00 ? 37次 阅读
TeamViewer 14绿色不用安装的远程控制软件免费下载

mp调试软件安装说明免费下载

本文档的主要内容详细介绍的是mp调试软件安装说明免费下载。
发表于 04-11 08:00 ? 31次 阅读
mp调试软件安装说明免费下载

嵌入式软件工程师一般都在开发什么

在嵌入式这个行业,只要工作了几年的同仁。他们通常在跳槽面试下一家企业的时候简历都写的高大上,十个里面....
的头像 工程师人生 发表于 04-10 15:22 ? 289次 阅读
嵌入式软件工程师一般都在开发什么

嵌入式软件工程师待遇怎么样 当前企业需要哪些娱乐城白菜论坛

想要了解嵌入式软件开发工程师待遇怎么样,那就先来看一下嵌入式软件工程师发展趋势怎么样,据市场分析,现....
的头像 工程师人生 发表于 04-10 14:57 ? 294次 阅读
嵌入式软件工程师待遇怎么样 当前企业需要哪些娱乐城白菜论坛

基于嵌入式的煤矿安全生产集中监控系统设计

煤炭、石油等化石能源是我国能源供应的主体,特别是煤炭在保障我国能源安全中,起着基础性作用。在我国目前....
发表于 04-10 08:44 ? 274次 阅读
基于嵌入式的煤矿安全生产集中监控系统设计

Labview激活软件应用程序免费下载

本文档的主要内容详细介绍的是Labview激活软件应用程序免费下载
发表于 04-10 08:00 ? 23次 阅读
Labview激活软件应用程序免费下载

CAD看图软件应用程序免费下载

本文档的主要内容详细介绍的是CAD看图软件应用程序免费下载。
发表于 04-09 15:35 ? 27次 阅读
CAD看图软件应用程序免费下载

我们的世界将被软件吞没!

最近有消息透露,可口可乐每年生产300万吨塑料包装,这相当于每分钟生产20万个塑料瓶。这则消息是由新....
的头像 嵌入式资讯精选 发表于 04-09 15:17 ? 586次 阅读
我们的世界将被软件吞没!

Aitech防务系统公司提供用于人工智能(AI)的小型嵌入式计算系统

Aitech防务系统公司正在与Concurrent Real-Time公司合作,将RedHawk L....
的头像 新光电 发表于 04-09 14:36 ? 375次 阅读
Aitech防务系统公司提供用于人工智能(AI)的小型嵌入式计算系统

传感器正在吞噬世界!

网景公司创始人与风险投资家马克·安德森提出了非常具有创见,而且已经成为现实的观点:“软件正在吞噬世界....
的头像 人工智能学家 发表于 04-08 09:04 ? 528次 阅读
传感器正在吞噬世界!

几种常用的经常出现于现有嵌入式应用中的内存映射I/O方法概述

Linux 暴风雨般占领了嵌入式系统市场。分析家指出,大约有1/3到1/2的32/64位新的嵌入式系....
发表于 04-08 08:52 ? 79次 阅读
几种常用的经常出现于现有嵌入式应用中的内存映射I/O方法概述

基于DSP的实时嵌入式数字处理系统设计剖析

弹载信息处理系统是一种实时嵌入式数字处理系统,用于对弹载导引系统接收信号进行分析处理,实现对目标信号....
发表于 04-08 08:44 ? 242次 阅读
基于DSP的实时嵌入式数字处理系统设计剖析

Fiddler抓包工具v4.6.1.5汉化版软件免费下载

《fiddler4.6中文版》是一款HTTP调试抓包工具, 该工具比其他的网络调试器要更加简单,设置....
发表于 04-08 08:00 ? 28次 阅读
Fiddler抓包工具v4.6.1.5汉化版软件免费下载

蓝牙芯片软件应用程序免费下载

本文档的主要内容详细介绍的是蓝牙芯片软件应用程序免费下载。
发表于 04-08 08:00 ? 42次 阅读
蓝牙芯片软件应用程序免费下载

嵌入式存储市场增长 物联网安全是嵌入式存储的新挑战

今天以人工智能、3D打印、生物科技、机器人、无人驾驶、纳米科技、量子计算和物联网等为特征的第四次智能....
发表于 04-05 17:22 ? 582次 阅读
嵌入式存储市场增长 物联网安全是嵌入式存储的新挑战

几种有代表性的嵌入式Linux浅析

由于 Linux 所具备的开源、稳定、高效、易裁剪、硬件支持广泛等优点,使得它在嵌入式系统领域最近十....
发表于 04-05 14:58 ? 286次 阅读
几种有代表性的嵌入式Linux浅析

汉字字模提取软件V2.2应用程序免费下载

本文档的主要内容详细介绍的是汉字字模提取软件V2.2应用程序免费下载。
发表于 04-04 16:11 ? 36次 阅读
汉字字模提取软件V2.2应用程序免费下载

嵌入式C语言编程与Microchip PIC电子书免费下载

本书全面系统地介绍了C语言编程娱乐城白菜论坛及其在嵌入式微控制器中的应用,其中包括嵌入式C语言、PIC微控制器....
发表于 04-04 08:00 ? 77次 阅读
嵌入式C语言编程与Microchip PIC电子书免费下载

e络盟携带一系列智能解决方案亮相2019年慕尼黑上海电子展!

除此之外,随着AI成为未来的发展热点,e络盟还建立了AI娱乐城白菜论坛资源中心,覆盖各种话题,包括AI基本释义....
的头像 嵌入式资讯精选 发表于 04-03 13:50 ? 676次 阅读
e络盟携带一系列智能解决方案亮相2019年慕尼黑上海电子展!

关于嵌入式Linux中进程调度的内容浅析

处理机(CPU)是整个计算机系统的核心资源,在多进程的操作系统中,进程数往往多于处理机数,这将导致各....
发表于 04-03 09:02 ? 92次 阅读
关于嵌入式Linux中进程调度的内容浅析

如何提高开源嵌入式处理应用程序的性能

通常理解的“开源”定义是指任何带有源代码的项目,可供其他程序员使用。开源软件通常在软件程序员社区内协....
的头像 电子设计 发表于 04-03 08:34 ? 294次 阅读
如何提高开源嵌入式处理应用程序的性能

蓝桥杯模拟升降控制器和模拟液位检测告警系统的嵌入式程序免费下载

本文档的主要内容详细介绍的是蓝桥杯模拟升降控制器和模拟液位检测告警系统的嵌入式程序免费下载。
发表于 04-03 08:00 ? 37次 阅读
蓝桥杯模拟升降控制器和模拟液位检测告警系统的嵌入式程序免费下载

为啥安装软件要重启

粗略解释如下:大多数电脑软件装完后,都需要修改注册表使其在电脑中占有“一席之地”。但开机后的注册表核....
的头像 发烧友学院 发表于 04-02 15:30 ? 133次 阅读
为啥安装软件要重启

关于嵌入式Linux系统中的BSP浅析

嵌入式系统由硬件环境、嵌入式操作系统和应用程序组成,硬件环境是操作系统和应用程序运行的硬件平台,它随....
发表于 04-02 14:42 ? 113次 阅读
关于嵌入式Linux系统中的BSP浅析

linux文件系统中的虚拟文件系统设计详解

Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等。通过使用同一套文....
发表于 04-02 14:37 ? 94次 阅读
linux文件系统中的虚拟文件系统设计详解