- 博客(512)
- 资源 (12)
- 收藏
- 关注
转载 RT-Thread代码启动过程——以及 Submain与Supermain
RT-Thread代码启动过程——以及 Submain与Supermain
2025-02-05 10:51:35
19
转载 zynq unable to alloc pbuf in recv_handler
网上最多查到的办法是增大pbuf部分的内存,例如 MEM_SIZE, MEMP_NUM_PBUF, PBUF_POOL_SIZE.这些参数。的时候是在循环中使用。1:这个错误在setup_rx_bds函数中发生,该函数功能是释放DMA的空闲bd块和传递以太网数据包。setup_rx_bds在emacps_recv_handler函数中调用。2:emacps_recv_handler函数是DMA函数的回调函数,以太网DMA收到数据包时候将会调用该函数。2:就是我们在循环外调用setup_rx_bds的方法。
2023-09-15 10:59:52
2207
4
原创 xilinx sdk2018.3批量注释代码
1. 快捷键:ctrl+/,先选择要注释的代码块,取消注释则再ctrl+/一下就行。2. 右键->选择source->Toggle comment。
2023-08-28 15:48:04
970
原创 xilinx sdk2018.3格式化代码
3.选择source -> format即可格式代码,快捷键ctrl+shift+f可能成功不了,建议直接右键去格式代码。2.右键代码区空白处,弹出右键菜单栏。1. 打开sdk工程。
2023-08-24 15:25:01
804
转载 can2.0标准协议
其中CAN 2.0A协议仅支持标帧格式,而CAN 2.0B协议支持标准帧格式(Stand Frame,11位标识符)和扩展帧格式(Extend Frame,29位标识符),CAN 2.0B协议的存在只是为了解决标识符不够用的情况(标识符也称作CAN ID,位于数据帧或遥控帧的仲裁场),所以CAN 2.0B和CAN 2.0A一样每个数据帧最多传输8个字节的数据。标准格式 ID 与具有相同 ID 的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的 RTR 位为显性位 的具有优先权,可继续发送。
2023-08-19 16:09:17
1978
转载 一文读懂can2.0协议规范
CAN 2.0 总线协议定义一个标称的位时间分为:同步段、传播段、相位缓冲段1、相位缓冲段2。同步段用于同步各节点,正常情况下跳变沿落在此段内;传播段用于补偿网络内的传输延时;采样点时刻读取的电平代表这个位的电平;CAN总线的时间份额通常由振荡器周期分频而得各时间段长度为:同步段1份额,传播段18份额,相位缓冲段1,18份额,相位缓冲段2,Max(相位缓冲段1,信息处理时间),其中信息处理时间
2023-08-19 15:54:47
2205
转载 ubuntu 更新阿里源
原文地址:https://www.cnblogs.com/moyu557/p/10710689.html查看新版本信息 lsb_release -cUbuntu 12.04 (LTS)代号为precise。Ubuntu 14.04 (LTS)代号为trusty。Ubuntu 15.04 代号为vivid。Ubuntu 15.10 代号为wily。Ubuntu 16.04 (LTS)代号为xenial1.备份源文件 sudo cp /etc/apt/sources.li
2022-05-12 15:41:00
737
转载 Ubuntu16.04.6 samba 不能访问共享文件夹,因为你的组织安全策略阻止未经身份验证的来宾访问
原文地址:https://jingyan.baidu.com/article/e9fb46e18b4e7f3420f7667f.htmlWindows 10提示你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问,怎么办呢?工具/原料 弘基Veriton E450 Windows10 方法/步骤 在win10的电脑上的左下角输入gpedit.msc,然后找到Microsoft通用管理文档 找到计算机配置-管理模板-网络
2022-04-18 14:09:40
3377
1
转载 十大经典排序算法
原文地址:一文搞掂十大经典排序算法_不才伟才的博客-CSDN博客一文搞掂十大经典排序算法今天整理一下十大经典排序算法。1、冒泡排序——越小的元素会经由交换慢慢“浮”到数列的顶端算法演示算法步骤比较相邻的元素。如果第一个比第二个大,就交换它们两个;对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;针对所有的元素重复以上的步骤,除了最后一个;重复步骤1~3,直到排序完成。算法实现def bubbleSort(arr): for..
2022-04-14 13:47:06
154
转载 linux 文件IO - O_DIRECT和O_SYNC详解
原文地址:https://www.cnblogs.com/suzhou/p/5381738.html进入正题。O_DIRECT和O_SYNC是系统调用open的flag参数。通过指定open的flag参数,以特定的文件描述符打开某一文件。这两个flag会对写盘的性能有很大的影响,因此对这两个flag做一些详细的了解。先看一个open函数的使用例子. 1 2 3 4 5 6 /* Open new or existin
2022-04-07 16:44:22
7708
原创 source insight 3.5设置代码注释字体
打开source insight,菜单栏选择Options>>Style Properties>>Comment 选择注释文字字体,本人喜欢Calibri字体3. 保存设置,点击Done。注释效果如下:
2022-04-06 19:38:49
4105
2
转载 win10 命令行进入指定目录方法
原文地址:https://blog.csdn.net/weixin_29207913/article/details/106616959方法一在资源管理器”地址“前面输入cmd 。如下图:确认后cmd就会进入相关目录,进行其他cmd操作。如下图:方法二在资源管理器中,按住shift,同时右键空白地方,将会出现分别点击红框中选项,能分别使用PowerShell和WSL进入对应目录...
2022-03-21 21:31:47
2935
转载 xilinx petalinux离线编译
原文地址:https://www.cnblogs.com/hankfu/p/14074595.html介绍PetaLinux基于Yocto,编译Linux内核、文件系统等,非常庞大,需要的软件很多。如果从网络下载,可能消耗比较长的时间。本文基于Xilinx PetaLinux 2020.2.下载sstate文件进入Xilinx 网站嵌入式下载专区, 在页面内搜索“sstate”,找到和下载对应的文件。2020.1下,每个架构是一个独立的sstate文件。以前的版本,所有架构是一个sstat
2022-03-08 11:46:02
935
1
原创 linux 7z指令
安装7z指令包:Ubuntu安装:apt-get install p7zip-fullcentos安装:yuminstall p7zip -y压缩:7z/7za a -t7z -r *.7z /home/user/obj-folder/*a:表示压缩文件或文件夹-t:指定压缩格式,默认支持7z,也能支持.tar.bz2,-t后没有空格,直接接格式-r:表示递归解压缩子文件夹*.7z压缩后生成的压缩文件/home/user/obj-folder/*:要被...
2022-03-05 13:09:24
1475
转载 指针数组和数组指针的区别
原文地址:https://zhidao.baidu.com/question/410228978.htmlint (*p)[4] 和 int *p[4]的区别为:性质不同、长度不同、指向不同。一、性质不同1、int (*p)[4]:int (*p)[4]是个指针(数组指针),指向有四个int类型数据的数组。2、int *p[4]:int *p[4]是个数组(指针数组),每个元素都是一个int *指针。二、长度不同1、int (*p)[4]:int (*p)[4]的长度为1,为一个数组
2022-02-18 15:14:13
658
转载 linux spin_lock注意事项
原文地址:https://blog.csdn.net/madannasf/article/details/103246042一、概述在kernel中,发生并发访问的发生源主要为一下4种方式1、中断和异常,中断发生之后,中断处理函数与被中断进程之间有可能会出现资源并发访问2、软中端以及tasklet,软中断以及任务调度都会打断当前的进程,从而发生资源的并发性访问3、内核抢占,内核抢占也是会打断当前的进程,从而造成资源的并发性访问4、smp,多个CPU也会对同一个资源进行并发性的访问。为了解决资
2022-01-04 14:12:14
310
转载 linux select延时函数
原文地址:https://blog.csdn.net/star871016/article/details/108550068?ivk_sa=1024320u使用select接口写高精确延时。select接口int select(int maxfdp, fd_set *readset, fd_set *writeset, fd_set *exceptset,struct timeval *timeout);原理利用select的timeout参数实现定时器;设置timeval的值,而将其他
2021-11-18 11:45:51
984
转载 linux usleep精度问题
原文地址:https://blog.csdn.net/weixin_42262944/article/details/107585320 最近在工作中遇到了一个应用程序usleep不准的问题,排查过程中了解了一下usleep的内核实现,简单的讲一下低精度模式下的usleep机制。 先把最终结论贴出来,内核使能 CONFIG_HIGH_RES_TIMERS选项,且平台支持高精度定时器模式,即可解决该问题。 下面主要来分析为什么在未使能高精度定时器的情况下,usleep不准的问题。参考文章可参
2021-11-17 14:46:42
4209
转载 windows取消、终止线程
原文地址:https://blog.csdn.net/SoaringLee_fighting/article/details/78377147一、线程终止windows操作系统中,创建的线程有以下4种终止方式1. 线程函数返回当线程函数返回时,该线程会被终止,始终应该采用该方式来结束线程的运行,因为这是确保所有线程资源被正确清除的唯一办法。如果线程按照该方式成功返回,则:1)线程函数中创建的所有C++对象均能通过他们的析构函数正确的被撤销2)操作系统将正确的释放线程运行栈所使用的内存
2021-10-09 15:24:29
2659
转载 如何处理代码中的长参数列表
原文地址:https://blog.csdn.net/qq_33589510/article/details/120445959有经验的程序员应该都见过,一个方法坐拥几十上百个参数。方法为何要有参数?因为不同方法间需共享信息。但方法间共享信息的方式不止一种,除了参数列表,还有全局变量。但全局变量总能带来意外惊喜,所以,取消全局变量也是各大语言的趋势。但方法之间还是要传递信息的,不能用全局变量,于是参数就成了唯一选择,于是,只要你想到有什么信息要传给一个方法,就会直接它加到参数列表中,参数列
2021-09-26 16:01:41
442
转载 WDF开发详解
原文地址:https://blog.csdn.net/lang_eva/article/details/109676808WDF开发详解添加设备:hdwwizKMDF驱动程序框架KMDF 驱动程序框架由对象和事件回调例程构成。KMDF 框架中所有的事物都由对象表示,各种事件处理都由事件回调例程来完成。学习KMDF编程,主要是学习 KMDF 的各种对象、对象函数和时间回调函数的编程。一、1.KMDF 对像为了实现基于对象的技术,微软精心设计了对象模型并进行了封装,提供了属性方法
2021-08-26 09:33:07
3908
转载 c 实现crc16查表校验
原文地址:http://www.seven365.cn/2017/12/21/2017-12/21/crc16/C实现的CRC16算法CRC即循环冗余校验码是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。基本原理任意一个由二进制位串组成的代码都可以和一个系数仅为0和1取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。CRC的种类标准CRC生成多项式如
2021-08-16 15:37:38
2261
转载 winsocket tcp 非阻塞实例
在 Winsocket 一:单线程阻塞server&client程序(tcp) 和 Winsocket 二:多线程阻塞服务器程序(tcp)介绍了阻塞tcp程序,阻塞式tcp程序服务器程序会因为建立连接和关闭连接而频繁的创建和关闭线程会产生大量的内存碎片,从而导致服务端程序不能保证长时间的稳定运行,本文简单介绍非阻塞式tcp程序的编写。一、非阻塞 阻塞是指在进行一个操作的时候,如服务器接收客户端的连接(accept),客户端程序执行connect操作,服务器或者客户端读写数据(r...
2021-08-10 11:08:34
1800
转载 tcp 阻塞与非阻塞
原文地址:http://blog.chinaunix.net/uid-8489474-id-2031025.htmltcp协议本身是可靠的,并不等于应用程序用tcp发送数据就一定是可靠的.不管是否阻塞,send发送的大小,并不代表对端recv到多少的数据.在阻塞模式下, send函数的过程是将应用程序请求发送的数据拷贝到发送缓存中发送就返回.但由于发送缓存的存在,表现为:如果发送缓存大小比请求发送的大小要大,那么send函数立即返回,同时向网络中发送数据;否则,send会等待接收端对之前发送数据的确认
2021-08-05 17:29:37
3816
转载 windows driver - DeviceIoControl 用法
原文地址:https://www.cnblogs.com/lsh123/p/7354573.html之前写过一篇关于通过DeviceIoControl函数来使应用程序与驱动程序通信的博客,这次再通过这个完整的代码来简要疏通总结一下。 这种通信方式,就是驱动程序和应用程序自定义一种IO控制码,然后调用DeviceIoControl函数,IO管理器会产生一个MajorFunction 为IRP_MJ_DEVICE_CONTROL(DeviceIoControl函数会产生此IRP),MinorFunc.
2021-08-03 14:04:42
2410
3
转载 CTL_CODE宏函数
原文地址:https://blog.csdn.net/cosmoslife/article/details/7698688DDK中有一个CTL_CODE宏,用这个宏我们可以很方便的定义IOCTL。不管是IRP_MJ_DEVICE_CONTROL还是IRP_INTERNAL_DEVICE_CONTROL包,IOCTL都用如下形式定义:#define IOCTL_Device_Function CTL_CODE(DeviceType, Function, Method, Access)Devic
2021-08-03 11:20:43
315
转载 LARGE_INTEGER数据类型解析
驱动开发中,我们除了可以使用LONGLONG这个表示64位结构的数据外。还可以使用一个叫做LARGE_INTEGER的数据结构来表示64位数据。它的定义如下typedef union _LARGE_INTEGER { struct { ULONG LowPart; LONG HighPart; } DUMMYSTRUCTNAME; struct { ULONG LowPart; LONG HighPart; ...
2021-08-03 09:55:46
781
原创 UNREFERENCED_PARAMETER()宏函数
vs2013开发C程序,当定义一个变量如int val,这个变量未被使用时,vs编译就会报错或报出警告信息:“warning C4100: ''XXXX'' : unreferenced formal parameter.”屏蔽此报错或警告如下:加上UNREFERENCED_PARAMETER(val)即可。在vs编程windows 驱动时,经常没使用定义的变量会报错,导致编译失败。在vs编程windows 应用层代码时,经常没使用定义的变量会报警告,不影响编译。...
2021-08-02 14:21:03
597
转载 u-boot SPL是什么
什么是SPL?SPL(secondary program loader)是一个十分小的bin文件,它是用来引导主u-boot文件。对于一些SRAM很小的SOC,无法一次性加载ROM中的bootloader到SRAM中,因为一般SRAM远远小于bootloader的大小。这时候SPL应运而生了。加载过程嵌入式系统的SOC内部会有比较小的SRAM,而外部的一般会有DDR或者SDRAM,后面的RAM就是外部RAM;SPL会先被加载到SRAM中,然后初始化DDR或者SDRAM,总之会初始化外部的RAM,然后
2021-07-30 15:19:20
1431
转载 error C2220: 警告被视为错误 - 没有生成“object”文件
错误提示:error C2220: 警告被视为错误 - 没有生成“object”文件错误原因:原因是该文件的代码页为英文,而我们系统中的代码页为中文。解决方法:1,将源码转化为正确的编码方式用VS2013打开对应的文档,文件->打开->选择该cpp,然后保存。如果不起作用的话,修改其中一部分,或者 选择替换,选中正则表达式,将\n替换为\n。也可以用文本编辑器如Notepad++,将代码文件的编码方式更改为ANSI。2,设置项目属性,取消警告视为错误VS2013菜单 - 项目 -
2021-07-15 14:12:57
6944
转载 windows程序计时
原文地址:https://www.cnblogs.com/findumars/p/8732306.html首先,认识一下clock()和GetTickCount():一、clock()clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:clock_t clock(void) ;简单而言,就是该程序从启动到函数调用占用CPU的时间。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(cl
2021-07-11 16:08:21
464
原创 C 中&(type *)0)->field)的含义
应用场景:#define offsetof(type, field) (long)&(((type*)0)->field)type:表示一个结构体filed:表示type结构体的成员(type*)0:应该是表示结构体首地址(type*)0)->field:表示结构体成员field&(((type*)0)->field):表示成员field相对于结构体首地址的偏移地址作用:计算出type结构体成员filed在结构体中的偏移地址。如:struct str{
2021-07-01 11:51:42
1085
转载 linux EXPORT_SYMBOL
EXPORT_SYMBOL是Linux内核中一个常见的工具,其作用是讲一个”Symbol”(函数或者变量)导出到内核空间,使得内核的所有代码都可以使用。我们用下面的例子来说明其使用方法。注意:在这篇文章中我假设你已经知道了内核模块开发的基本套路。假设我们创建了两个内核模块mod1和mod2,其中mod1中有一个方法func_exported需要在mod2内调用。Mod1Mod1中的源代码为// mod1.c#include <linux/init.h>#include <lin
2021-06-23 11:50:51
139
转载 什么是网关和路由
原文地址:摘要:网关是逻辑概念,路由器是物理设备,路由器可以作为网关来使用。路由器是一个设备,而网关是一个结点(概念层)。应该说:路由器可以实现网关的功能。另外,网关的功能还可以由局域网中一台双网卡的机器(其中一块网卡接入广域网)来实现。一、什么是网关顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。按照不同的分类标准,网关也有很多种。TCP/IP协议里的网关是最常用的,在这里我们所讲的“网关”均指TCP/IP协议下的网关。那么网关到底是什么呢?网关实质上是一个网络通向其
2021-06-07 11:27:56
6248
2
转载 udp 组播
先来了解下UDPUDP是UserDatagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。UDP和TCP的区别:http://blog.csdn.net/ljheee/article/details/50823050UDP详解:http://blog.csd.
2021-06-04 17:56:22
440
转载 linux c void类型
原文地址:https://blog.csdn.net/men_wen/article/details/525656521.什么是void?void在英文中形容词的意思就是无效的,空的,空虚的意思,在C语言中就是空类型的意思。在C语言中,使用void这个类型时,有如下规则:void 只能修饰函数,不能修饰变量void * 函数、变量都可以被修饰122.void的使用2.1 void修饰变量用void 定义一个a,编译后会报错void a;//void.c: 在函数‘main’中:
2021-04-28 10:51:24
319
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人