自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

原创 编程中,那些一直被认为是好习惯的坏习惯

对于代码的实现,我们尽量使用常见的语法。为了进一步提高代码的可读性,我们可以将上图的语句表达封装成函数,通过函数的命名直观的知道函数所实现的功能。为了代码的高可读性,我们需要在函数及变量命名上较完整的表示其功能,只有那些被众所周知的单词我们才能使用他的简写去命名函数及变量。在使用一些不常见的第三库时,我们首先要考虑下是否有更简单的实现方式,在充分考虑的基础上,再去确认是否需要导入第三方库。对于以上的代码实现,我们在看代码时,脑袋需要多转两下才能搞清它的意思,这对代码的阅读体验来说是比较差的。

2024-11-12 16:00:01 870

原创 低功耗芯片预研点列表

这多款型号的设备的供电方式可能是不一样的,比如:锂电供电、电池供电。那么在电池低电情况下,工作在最大压降场景下的设备电池电压就会跌落到2.6V,低于芯片最低工作电压,则芯片就会出现重启。例如,我们预研过的一款芯片,在常温环境下,处于休眠状态的芯片功耗正常。芯片的有些IO可能存在无法进行上下拉配置的情况,如果这些IO使用在需要拉高或者拉低的场景中,但却无法进行相应上下拉的设置,则会出现整体功耗偏高的情况。芯片休眠时其未使用的IO或者内部电路的IO如果处于悬空状态,则可能导致在不同环境下其功耗会有差异。

2024-09-12 20:05:16 888

原创 嵌入式开发-如何快速定位到系统卡死的位置

因此,我们可以定义全局变量并在需要的地方将代码行号、变量记录到定义的全局变量中,以便在系统出现卡死时读取。所以,我们需要解决两个问题:一是在何处监听代码,二是在系统卡死时如何获取记录的信息。通过上述方式添加监听接口后,当系统在while循环中出现卡死现象时,系统将定期打印相关信息。然而,在某些情况下,系统可能会在while循环中卡死,但这并不是while循环本身代码的问题,而是由于外部模块发生了内存越界访问,从而篡改了while循环代码导致的。期望本方法能帮助大家在遭遇系统卡死状况时,不必发出无助的哀嚎。

2024-09-09 17:40:24 1287

原创 PLC(电力载波通信)网络机制介绍

电力载波通讯即PLC,是英文Power line Carrier的简称。电力载波是电力系统特有的通信方式,电力载波通讯是指利用现有电力线,通过载波方式将模拟或数字信号进行高速传输的技术。最大特点是不需要重新架设网络,只要有电线,就能进行数据传递。CCO在所有相线上工作,STA只在一个相线上工作,不同相位具有不同的过零时间,CCO通过采集STA的过零时间确定STA的相位时分多址传输,设备独占间隙,数据包根据指定时间进行发送载波侦听多路访问/冲突检测,设备共同占有间隙,判断信道空闲,竞争进行发送。

2024-09-08 09:23:18 7131 2

原创 silicon zigbee开发环境搭建及工程创建、导入、烧录

双击install-studio-v4_x64.exe安装,使用默认方式安装即可,或者可以将安装目录更改到自己的安装目录下。推荐使用方法2安装,这样可以不用下载sdk。开发板连接:将开发板连接到电脑上,打开Simplicity Studio,使用帐号登陆。点击Update Software,可以选择Install by Device。

2024-09-07 08:55:44 1216

原创 测试驱动开发(TDD)学习分享-下篇

为有很多全局量的代码增加测试是很有挑战的,一个测试可能会因为另一个测试留在全局量里的状态信息而遭到破坏,另一件同样的坏事是其他测试开始依赖于这种状态。测试是代码职责的文档,并确保任何将来Time函数的错误都能直接被它自己的测试所捕获,而不是其他测试的副产品。一旦感知到了代码中的不对的地方,接下来就要利用我们对代码和设计的知识来预想到一个更好的解决方案。从Lightscheduler的角度来看,Time可以是一个抽象数据类型,如我们在11.2节讨论的那样,它不再访问Time的任何成员变量了。

2024-09-06 15:48:52 1083

原创 测试驱动开发(TDD)学习分享-上篇

测试驱动开发(TDD)是一种增量式软件开发技术。简单地说,就是在没有失败的单元测试的前提下不可以写产品代码。这些测试要很小,而且要自动化。用测试来驱动其实很合理。相对于直接写产品代码,TDD的实践者们会先用测试来表达他们希望产品代码会有什么样的行为。然后这个测试显然会失败。只有在这时,他们才开始写产品代码;以便让测试通过。在测试驱动开发LightScheduler时,测试夹具通过截获对TimeServeice和LightController的调用来校验LightScheduler的行为是否正确。

2024-09-06 15:02:18 2247

原创 代码静态分析工具cppcheck安装及操作说明书

如上图1所示,cppcheck静态分析工具安装在Linux编译服务器上,开发人员通过Windows环境下的VSCode开发工具,连接上Linux服务器后,实现对项目源代码的静态分析、问题修改及编译。

2024-09-05 09:51:50 1314

原创 zigbee设备入网&安全

在一个zigbee协调器设备建立网络后,未加入网络的路由设备或终端设备,可以加入协调器建立的网络。设备入网有两种入网方式:关联入网:由新设备发起入网请求,网络内设备回应请求;直接入网:由网络中原有设备决定,子设备具体加入到某父设备下。在父设备中写入子设备MAC地址,子设备作为该父设备的子节点加入网络;主要区别:1、是否指定父节点;2、关联入网前两设备相互没有联系,直接入网前父设备已知子设备MAC地址;

2024-09-04 18:24:49 2713

原创 嵌入式开发-芯片串口资源不够,你还在使用模拟串口输出调试信息吗?

然而,在模拟串口输出过程中,存在一个棘手的问题,即传输速率与稳定性之间的平衡。在嵌入式项目的开发过程中,为了满足项目的功能需求,我们有时需要使用多个串口与其他厂商的模块进行对接。在这种情况下,可能会出现芯片串口资源刚好被完全占用的情况,从而导致没有多余的串口可用于输出系统的调试信息。串口的时分复用,简而言之,是指在串口TX与模块进行通信时,采用模拟串口输出调试信息;对于利用蓝牙来作为调试信息的传输通道,有个很大的好处是,对于已交互客户的设备,我们不用拆机焊线,就可以直接读取到调试信息。

2024-09-03 21:53:33 1065

原创 嵌入式软件十大编程低级错误C语言-下篇

未初始化的变量是指在声明或定义变量时没有显式地给变量赋初值。未初始化的变量在内存中的值是不确定的,可能是随机值,也可能是编译器给定的默认值。忘记检查返回值是指在调用函数或操作返回值时,程序员没有对返回值进行检查或处理。这种情况可能导致程序无法正确处理函数调用的结果,从而引发程序错误或异常。编码安全性问题是指程序员在编写代码时未考虑到潜在的安全漏洞或未正确处理输入数据,导致程序容易受到恶意攻击或数据泄露的问题。这种问题可能会导致程序受到缓冲区溢出、整数溢出、格式化字符串漏洞等安全漏洞的攻击。

2024-08-30 22:22:38 1056 1

原创 嵌入式软件十大编程低级错误C语言-上篇

空指针是一个指向内存中地址为NULL的指针,也称为未初始化指针。在程序中,如果一个指针没有被明确地赋予一个有效的内存地址,它就会被视为空指针。当试图使用空指针来访问或操作内存中的数据时,通常会导致程序崩溃或出现未定义行为。数据未校验或未判空处理的错误是指在代码中没有对传入的参数、从文件中读取的数据、返回的参数的数据进行有效性判定或判空处理。在C语言中,数据未校验错误往往会导致如下后果:1) 缓冲区溢出:当向一个固定大小的缓冲区写入超过其容量的数据时,可能会导致缓冲区溢出。

2024-08-30 22:21:44 863

原创 嵌入式开发-死机位置在第三方库的问题原因定位

因此,我们需要监控可能受到外部代码影响的变量,因为第三方库的局部变量是在执行其内部函数才会从栈申请,所以这些局部变量不会被外部代码修改。换句话说,尽管死机信息显示了系统在第三方库的A位置停止运行,但实际上,可能是因为外部代码在位置B越界篡改了第三方库的变量数据,从而导致第三方库A位置的死机。一般在编写函数时,定义的局部变量、数组、指针、结构体等,都是在芯片执行到该函数时为才为这些变量申请的内存空间,当函数执行完成后,内存会被系统释放,这些变量申请后所占用的内存都属于栈空间;

2024-08-30 14:43:03 1494 1

高精度频率计

本系统基于C8051F020实现等精度的频率测量,利用该单片机灵活的控制功能及速 度优势,大大提高了性能和测量精度。以往的测频都是采用高频段直接计数、低频段间接测周 的方法,其测量精度往往会随着被测频率的改变而受到影响。为了克服测频中高低频段测量精 度不等的缺陷,采用双计数器设计,实现等精度的频率测量。等精度的测量方法不但具有较高 的测量精度,而且在整个测频区域内保持恒定的测量精度。

2013-12-28

EDA培训资料

关于数码管的显示的原理及部分程序代码,还有关于其中几个语句的介绍

2013-04-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除