- 博客(56)
- 资源 (1)
- 收藏
- 关注
转载 linux内核中的min、max函数
Linux内核代码有很多很经典的代码,仔细去看看,可以学到很多知识。2、({XXXX})含义:类似与C中的逗号表达式,XXXX可以包含有多条语句(可以是变量定义、复杂的控制语句),该表达式的值为XXXX中的最后一条语句的值。可以看出,如果x是最小值,那么它加了两次,很明显是不对的。里面有很多东西都没见过,但是它能解决传统的min/max宏带来的副作用。结合了type和({})可以很好的消除宏的副作用。可以看到,x只被加了一次,如果x是最小值,结果是正确的。但是上面的写法是有副作用的。替换宏之后,代码变成。
2024-12-16 22:00:00
152
原创 TESSY创建需要手写桩的测试用例
如果需要让桩函数有额外的功能,如:传参检测、局部数据处理、多传参检测、函数实现变更等,可以进行手写桩。我们以tessy5.1为例,给大家展示编写一个需要手写桩的测试用例过程。
2024-09-13 22:00:00
893
原创 TESSY创建需要高级桩的测试用例
需要打高级桩的情况如下:1) 使用到桩函数的返回值;2) 如果函数有形参,并且需要接口传参检测;我们以tessy5.1为例,给大家展示编写一个需要高级桩的测试用例过程。
2024-09-13 17:57:10
636
转载 lwip协议的配置与裁剪
1、前言 最近项目的上使用有线以太网功能,软件协议使用LWIP协议,操作系统使用Rt thread 3.1.3版本,硬件使用STM32F429+PHY LAN8720方式。这篇记录总结lwip的详细配置。2、配置文件种类 lwip的配置文件有lwipopts.h和opt.h两个头文件,其他中opt.h文件是lwip的默认配置文件,不需要修改此文件,lwipopts.h是用于配置lwip的文件,用户的对协议的配置请在这个文件中增加与修改,lwipopts.h文件中定义宏会覆盖到...
2022-05-12 20:35:48
3565
转载 IAR环境下的STM32H750片外QSPI Flash下载仿真
一、前言 做单片机开发,用的不是IAR就是KEILL,这两款IDE也说不上谁更好用,但是KEIL涉及一个版权问题,个人使用破解是没啥问题,但是公司商业使用会有点麻烦。 前段时间用STM32H750VB这块单片机做项目,这块单片机自带1M RAM,不需要外挂RAM了,价格上也是很香。但是,只有128K Flash,支持外挂扩产,加了一个8M的W25Q64 QSPI flash。开始是用KEIL做的,因为开源资料多,KEIL的Flash Download网...
2022-01-29 15:05:48
2517
1
转载 IAR sprintf 浮点 在UCOS 总格式化成0.0的问题
1. 问题描述:当使用uocs printf(),sprintf()打印浮点数问题会出问题,但是裸机不会出问题我现在使用LPC1758跑UCOS,在使用sprintf打印float类型时候,不管是何值最后都是0.0,但是类型是int,short类型时没有问题。网上查到是任务堆栈8字节对齐就可以了。当没有操作系统时,系统堆栈是8字节对齐的,但是当使用ucos时,用户任务不一定是8字节对齐.Task 3中的堆栈起始指针0x1000000F4,不是8字节对齐,所以但在Task 3 任务中.
2022-01-28 15:07:28
691
转载 VS warning LNK4099:未找到 PDB 的解决方案
举例: “warning LNK4099: 未找到 PDB“vc120.pdb”(使用“sqlite3d.lib(sqlite3secure.obj)”或在“D:\test\Debug\vc120.pdb”中寻找);正在链接对象,如同没有调试信息一样”。使用VC时链接了第三方静态库, 并且第三方静态库(一般是开源的三方库)是在一个solution下的多个project, 当然, 网上基本都是这么回答的, 其实本质原因是因为这些开源库一般都会通过各种方式修改solution和project的默认路径把二进.
2021-12-29 16:16:24
7299
转载 【Ethernet】以太网卡LAN8720A分析和使用
文章目录1. LAN8720A简介2. PHYAD[0]: PHY地址配置3. MODE[2:0]: Mode配置4. nINTSEL: nINT/REFCLKO配置5. REGOFF: 配置内部+1.2V电压源6.SMI(MDC/MDIO)总线接口介绍6.1 MDIO接口6.2 MDIO数据传输协议7. 相关寄存器描述8. 参考资料1. LAN8720A简介LAN8720A 是 SMSC 公司(已被 Microchip公司收购)设计的一个体积小、功耗低、全能型 10/100Mb
2021-10-21 21:36:38
10646
原创 国民技术N32G45X ADC配置
最近在使用国民技术的N32G45X系列的芯片做项目,使用了ADC外设,根据芯片规格书中的描述,ADC 时钟源分为工作时钟源、采样时钟源和计时时钟源;1、仅可配置 AHB_CLK 作为工作时钟源,最高可到 144MHz;2、可配置 PLL 作为采样时钟源,最高可到 72MHz,支持分频1,2,4,6,8,10,12,16,32,32,64,128,256;3、可配置 AHB_CLK 作为采样时钟源,最高可到 72MHz,支持分频 1,2,4,6,8,10,12,16,32;4、 计时...
2021-07-03 20:30:21
2360
转载 git命令大全
git命令大全Git图形化界面我用的还可以,但是命令就不太会了,索性和大家一起学习下Git命令的用法…一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。fetch命令 vs pull命令git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。下面
2020-12-19 15:52:54
142
1
转载 Cortex_m7内核cache深入了解和应用
一. cache概述从下图可以看出,从M7内核才开始有的cache,这对于从M0,M3,M4一路走来的小伙伴来说,多了一个cache就多了一个障碍。Cortex-M7 core with 32K/32K L1 I/D-Cache!这提供了极高的性能,代码无论是从芯片上的内存,外部闪存,还是外部内存运行!介绍种类包括:L1 cache, memory types, attributes and MPU(Memory Protection Unit). 指导用户如何使用缓存开发以正确和高性能方式运行应用程
2020-07-31 19:55:46
2955
转载 解决Eclipse中按Ctrl无法跳转的问题
因为MDK版权问题,导致不能使用,后面安装Eclipse+GCC的方式,但是Eclipse首次编辑大于5000行(默认)代码以上的文件时,会提示为了提高性能,已进入Scalabilitys模式,将关闭代码定义跳转功能以提高性能,很可能随手就点过去了,之后编辑大代码又找不到地方恢复。 解决办法很简单,进入Windows->Preferences->C/C++->Editor...
2019-02-27 13:53:55
12814
2
转载 Eclipse搭建stm32+jlink开发环境全攻略
前言:为什么需要这样的开发环境?1、免费2、跨平台3、自由度高4、Eclipse代码提示功能强大,MDK弱爆了注:本人原创,转载注明作者------by秋之前 http://www.openedv.com/thread-73543-1-1.html一、工具:1:jre1.7注意:如果电脑系统是64位的,请下载64位的2:eclipse+CDT地址:http://www.eclipse.org/do...
2018-12-27 18:36:48
11580
4
转载 android应用层读写iic设备
在Android开发和移植过程中,有时需要对某设备进行读写,但系统可能并未提供相应的服务。我们就需要自己开发硬件访问服务来控制设备。下面的例子是读写最简单的i2c设备eeprom的流程, i2c的驱动编写有两种方式,一种是利用系统提供的i2c-dev.c来实现一个i2c适配器的设备文件,然后通过在应用层操作I2C适配器来控制I2C设备;另一种是为I2C从设备独立编写一个设备驱动,不需要i2c-
2017-06-13 10:59:18
2299
1
原创 vs2010生成的exe程序在运行时,提示计算机丢失mfc100d.dll文件
vs2010开发的exe程序在别的电脑运行时提示,这个问题是因为运行程序的电脑在system32这个文件夹下没有mfc100ud.dll这个文件,解决办法如下:1、下载一个mfc100ud.dll,然后随同你的.exe程序一起发布;2、需要mfc100ud.dll,说明你发布的exe程序是debug版本的,在配置管理器中选择是release重新生成方案,之后在工程的文件夹下生成releas
2016-07-05 11:40:31
9179
原创 mfc现实edit控件输入限制(只能输入数字和小数点)
软件开发工具:vs2010前段时间的一个项目需要显示温度值,需要计算热敏电阻端adc采样值和温度的一一对应关系,因为计算量大,就想到自己写一个简单的计算器方便计算。这写代码过程中,需要处理edit数据输入,因为计算的数都是大于零的,我这里只实现了edit只能输入数字和小数点的功能。1、添加一个C++类,继承了基类CEdit,eg:class CMyEdit : public
2016-07-05 10:58:30
11664
2
原创 Error: L6220E: Execution region ER_IROM5 size (31436 bytes) exceeds limit (31424 bytes).
kei4.73编译过程中提示错误:..\..\..\scatterfiles\scatterfile_common.sct: Error: L6220E: Execution region ER_IROM5 size (31436 bytes) exceeds limit (31424 bytes). Region contains 13 bytes of padding and 1260
2015-12-30 10:40:41
12933
转载 加速度计和陀螺仪指南
本帖翻译自IMU(加速度计和陀螺仪设备)在嵌入式应用中使用的指南。这篇文章主要介绍加速度计和陀螺仪的数学模型和基本算法,以及如何融合这两者,侧重算法、思想的讨论介绍本指南旨在向兴趣者介绍惯性MEMS(微机电系统)传感器,特别是加速度计和陀螺仪以及其他整合IMU(惯性测量单元)设备。 2012-8-22 16:38 上传下载附件 (16.48 KB)
2015-12-26 09:47:25
732
转载 STM32 SHT10温湿度传感器的信号采集
首先讲讲SHT10这款温室度传感器。SHT1x(包括SHT10,SHT11和SHT15)属于Sersirion温湿度传感器家族中的贴片封装系列。更之前我讲过的DHT11这款温湿度传感器相比,体积小了许多,特别适合用于产品中。SHT10温湿度传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件(文绉绉的),传感器内部有一个精度高达14为位的A/D转换器,适应串行接口电路实现无缝连接。
2014-12-03 13:33:30
19353
22
转载 C 语言常见问题集
C 语言常见问题集原著:SteveSummit翻译:朱群英,孙云修订版0.9.4,2005年6月23日版权所有c. 2005 目录目录 i 前言 xvii 1 声明和初始化 1 1.1 我如何决定使用那种整数类型?................... 11.264位机上的64位类型是什么样的?................ 11.3
2014-11-18 09:32:10
7966
转载 Linux 进程间通信 --- 信号通信 --- signal --- signal(SIGINT, my_func); --- 按键驱动异步通知
信号 ( signal ) 机制是 UNIX 系统中最为古老的进程间通信机制,很多条件可以产生一个信号.信号的产生: 1,当用户按下某些按键时,产生信号. 2,硬件异常产生信号:除数为 0 ,无效的存储访问等等.这些情况通常由硬件检测到,将其通知内核, 然后内核产生适当的信号通知进程,例如,内核对正访问一个
2014-10-17 17:18:43
786
转载 ubuntu12.04循环登录,无法进桌面的问题
关于这个问题,网上很多答案,但是都是零零星星,而且各种说法不一样,这就说明了,产生这种现象的原因很多,因此很难界定你遇到这个问题的原因是不是这一个,我也遇到这个问题,以此记录下来,供来人参考。首先,ubuntu12.04已经正常使用了一段时间,后来因为想在ubuntu上安装bt5的工具,按照网上给的方法,更新源,并且使用gpg命令去设置密钥,然后发现firefox提示网络链接出错。因此
2014-09-02 14:44:28
1267
转载 sprintf函数的用法
sprintf() 格式化输出函数(图形)功能: 函数sprintf()用来作格式化的输出。用法: 此函数调用方式为int sprintf(char *string,char *format,arg_list);说明: 函数sprintf()的用法和printf()函数一样,只是sprintf()函数给出第一个参数string(一般为字符数组),然后再调用outtextxy()
2014-07-15 17:10:58
940
转载 20个公司绝对不会告诉你的潜规则
1.入职时的工资高低不重要,只要你努力工作你会得到相应待遇的 我估计几乎找过工作的人都听过这句话,当我们确定被聘用跟公司谈工资时,他们都会说“如果以后你业绩突出、努力工作,你的报酬也会相应增加的”,特别是当第一次找工作的时候大多数人会相信这些话,但是千万别相信。 刚入职时,你的工资就是你的全部(当然有一些岗位,比如销售或弹性工资的岗位除外,而且你入职以后大部分待遇都会跟着你的工资而浮动
2014-07-04 09:57:04
628
转载 zigbee学习笔记4----初次接触zstack
zigbee学习笔记4----初次接触zstack分类: zigbee 2013-02-20 17:24 2414人阅读 评论(6) 收藏 举报目录(?)[+] 1.写在前面之前一直在写裸机下的cc2530的那部分,现在觉得这样子写没啥意思,所以不再写那部分了,需要到http://www.cnblogs.com/hustlzp/archive/2011/02/13/195288
2014-07-03 14:37:18
868
转载 Zigbee协议栈中文说明
1.概述 1.1解析ZigBee堆栈架构ZigBee堆栈是在IEEE 802.15.4标准基础上建立的,定义了协议的MAC和PHY层。ZigBee设备应该包括IEEE802.15.4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC层,以及ZigBee堆栈层:网络层(NWK)、应用层和安全服务提供层。图1-1给出了这些组件的概况。1.1.1ZigBee堆栈层每个Z
2014-07-02 14:48:09
2157
原创 删除被占用的串口
第一步:我们可以通过删除注册表中的一个数值项来清除这些配置:在“运行”对话框中输入“regedit”进入注册表;然后进入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter这时我们可以找到该数值项:ComDB,它的值代表目前使用中的串口端号。比如1d,它的二进制:0001 1101,则从右往左数代表第
2014-07-01 18:03:20
8567
转载 CC2530 串口驱动
[cpp] view plaincopy/************************************************************************************************************* * 文件名: uart.c * 功能: CC2530 串口相关函数 * 作者: cp1300@139.com
2014-07-01 14:30:42
772
转载 s3c2440的摄像接口应用
s3c2440提供了一个摄像接口,使开发人员很容易地实现摄像、照相等功能。摄像接口包括8位来自摄像头的输入数据信号,一个输出主时钟信号,三个来自摄像头的输入同步时钟信号和一个输出复位信号。摄像接口的主时钟信号由USB PLL产生,它的频率为96MHz,再经过分频处理后输出给摄像头,摄像头再根据该时钟信号产生三个同步时钟信号(像素时钟、帧同步时钟和行同步时钟),反过来再输入回s3c2440。
2014-04-19 09:54:44
844
转载 read 系统调用剖析--file_operations中read/write函数与内核系统调用的关系
在阅读LDD3-第三章-字符设备驱动程序中:点击(此处)折叠或打开struct file_operations scull_fops = { .owner = THIS_MODULE, .llseek = scull_llseek, .read = scull_read, .write = scull_wr
2014-04-12 10:47:46
3963
转载 字符杂项设备 misc_register
#include #include #include #include /* misedevice 结构:struct miscdevice { int minor; //次设备号,若为 MISC_DYNAMIC_MINOR 自动分配 const char *name; //设备名 struct file_operation
2014-04-10 16:49:38
915
转载 OV9650驱动程序跟踪
学习了裸机OV9650的P通道LCD直接显示程序,作为这点基础开始分析OV9650在linux设备驱动程序。昨天看了点这个驱动程序,让我很郁闷的是写这个程序的人是有毛病还是怎么回事,简简单单的IO口功能引脚的定义,整出了一个套一个的定义,看的我晕乎乎的,也可能是哥根本没有入门,看别人牛逼的程序就看迷糊了。鉴于上面这种情况,我在程序跟踪时只能带一下了。我们跟踪程序按照常规方法,跟着驱动的编写
2014-04-10 10:45:29
680
转载 request_mem_region,ioremap 和phys_to_virt()
Linux在头文件include/linux/ioport.h中定义了三个对I/O内存资源进行操作的宏:(1)request_mem_region()宏,请求分配指定的I/O内存资源。(2)check_mem_region()宏,检查指定的I/O内存资源是否已被占用。(3)release_mem_region()宏,释放指定的I/O内存资源。 这三个宏的定义如下:
2014-04-10 10:38:59
930
MISRA-C-Guidelines-2012
2024-06-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人