自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

baowxz的专栏

一日不读书,无人看的出;一周不读书,开始会动粗;一月不读书,笨的像头猪。

  • 博客(171)
  • 资源 (3)
  • 收藏
  • 关注

原创 【FreeRTOS】中的portYIELD_FROM_ISR(xHigherPriorityTaskWoken)有啥用?

原来这个切换会在中断退出时直接切换到执行紧急的任务,所以以前设为NULL时,处理数据包只能处理5000包,加上 砖桥月饼 xHigherPriorityTaskWoken 后,可以到10000包,可见作用这么明显,以前真没体会到。2、以前不知道这个portYIELD_FROM_ISR是干啥的,只是知道他可以在退出中断时可以进行上下文切换,具体的有多大用不清楚。1、大家都知道,在中断里,freertos经常有下面的写法,会调用portYIELD_FROM_ISR。

2024-09-20 09:50:54 142

原创 svn回退到以前历史版本修改并上传

3、 以回退到版本号4为例:选中版本号4,右键->Revert to this version,在出现的对话框中。

2024-09-18 16:08:04 219

原创 Internal Error: [CoreUtil/General]: Access violation (0xc0000005) at 005C366F (reading from address

所以工具发生了冲突,把#pragma optimize = none屏蔽就好了。而整个工程的option的配置是。

2024-09-13 17:32:45 140

原创 【GD32H759】代码占用ram大小超过512k不能运行

原来如此,这部分的共享ram可以配置到itcm,dtcm和正常程序用的ram一块使用,但是需要分配他的大小,可以自定义分配!搜关键字itcm/tcm,终于发现有个函数 ob_tcm_shared_ram_size_get可以干这个事。查看ram地址配置文件发现,默认itcm和dtcm配置的都是64k,我也把他配置为64k吧。1、今天调试GD32H759程序发发现,当程序 大小为:503kb时可以运行。=============又是学习的一天============4、通过程序读下itcm,dtcm大小。

2024-09-03 15:17:47 281

原创 【IAR】IAR中使用内联函数

好像是inline在IAR默认是不打开的,得开最高优化,但开高优化有其他问题,所以,用这个进行强制inline,会将紧更着的第一个函数强制为inline内联函数。2、原来单纯的在函数前面添加inline关键字,会在链接的时候报错,如下。

2024-08-26 14:01:33 338

原创 boot跳转app遇到的问题,keil转iar的app工程

boot跳转app时,keil编译生成的app可以正常运行,而iar编译生成的app死活不能运行成功,不能正常跳转到app。主要注意的就是这两个地方,其他的源代码是相同的(汇编启动代码不一样,用官方提供的就行)3、最后通过gdlink调试发现gd32一直挂死在cache初始化这里然后不停复位。原来在boot时有初始化cache的,所以重新初始化就出了问题?4、把cache_enable()屏蔽了,程序就可以跑了。1、今天将keil的app工程转为iar的app工程。5、那么为啥keil生成的程序可以呢?

2024-08-21 10:50:45 151

原创 程序进入错误时调试,如hardfault

1、如果不是在仿真情况下,出现进入了死机程序,可以通过R0~R15大概判断下程序出问题的地方。3、读出PSP地址值存储PC,LR值:这里存的是,进入异常前,压入堆栈的PC和link信息。从PC值看到值为00000007,基本是系统开始的地方啊,说明异常退出?

2024-08-12 17:22:39 216

原创 git切割文件

git切割文件,还可以指定后缀。

2024-08-07 16:43:48 92

原创 IAR:自动将文件夹目录的源代码添加到工程

今天分享给IAR工具,可以将源码文件夹的的代码一次性全部添加到工程中,个人表示,十分好用,可以打个十分。

2024-07-31 14:40:17 424

原创 当和三方库的宏定义冲突怎么解除

回头试试,是不是随便在一个宏定义前面增加就可以。假如A中也宏定义了X,这里也需要定义一个宏X。在一个冲突的地方,加上这段代码。

2024-07-22 18:07:14 258

原创 typedef重复定义的一种解决方法

与#define不同,typedef没有类似#undef的方法取消定义,如果两个库中同时使用typedef定义了某个类型,便会编译失败。一个解决方法是,在包含第二个库时使用#define将重复定义的类型名改掉。

2024-07-22 16:53:43 463 1

原创 【FreeRTOS】 最简单的实现rtos的CPU使用率统计

portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()宏只在vTaskStartScheduler启动任务调度时初始化运行一次,不用管他;3、FreeRTOS本身不是有用一个定时器去切换任务吗,如果要求精度不高,可不可以用系统节拍去粗略估算FreeRTOS的CPU使用率呢?主要是要提供计数值portGET_RUN_TIME_COUNTER_VALUE()的定义,所以按照上面定义。也符合结果,lwip_init任务有个while(1)死循环,所以一直占用cpu。

2024-07-15 09:01:24 575

原创 【FreeRTOS】IAR的FreeRTOSConfig.h中在添加头文件的问题

而若在该头文件中添加其他头文件,就会被汇编编译器一块识别了;但是汇编编译器识别不了C源码,所以报错!所以FreeRTOSConfig.h中也标注了这个地方,头文件应该都放在这个宏定义里!IAR的Freertos中需加上一个portasm.s的驱动文件,而该文件需要调用。2、百度了半天也没有找到问题。放到这里后,就不报错了~

2024-07-12 14:37:23 279

原创 【FreeRTOS】freeRTOS的Tmr Svc任务优先级配置

5、所以配置最大优先级的时候,可以用宏configTIMER_TASK_PRIORITY来配置,如下图这样子,免得出错。4、后面才发现原来FreeRTOS的默认最大优先级号配置的是8,给他改成32就可以正常运行了,这里改为了31。1、Tmr Svc是个FreeRTOS的软件定时器任务,他可以收集各任务的状态。3、修改为31后,程序总是启动不了,2、他的优先级可以通过宏。

2024-07-11 15:00:53 377

原创 【FreeRTOS】configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY宏解析

2、子优先级:也是从优先级或者副优先级,在抢占优先级相同的情况下不能发生中断嵌套,高级的子优先级先执行。如果低级的子优先级在执行,需要等待完成才能执行高级的子优先级,即不发生抢断。1、抢占优先级:顾名思义能够抢先执行任务,即打断当前的主程序或者中断程序的运行,前去完成抢断中断。1>中断优先级2~15的优先级,可以调用FreeRTOS的ISR后缀API。2>中断优先级小于2的优先级,不可以调用FreeRTOS的ISR后缀API。主优先级3,在2~15内,可以调用isr的API了。测试成功,串口不死机了!

2024-07-10 15:01:57 467 1

原创 【FreeRTOS】freeRTOS的版本号在哪个源文件定义

可以通过宏 tskKERNEL_VERSION_NUMBER 找到,在task.h中定义。

2024-07-09 16:39:29 321

原创 【转】FreeRTOS通用移植,以keil和IAR工程 M7核为例

PendSV_Handler()与 SVC_Handler()这两个很重要的函数 在 port.c 文件中已经实现 xPortPendSVHandler()与 vPortSVCHandler()函 数.SysTick_Handler提供系统节拍。选择IAR路径下的,同时将portasm.s也添加到工程里,这里面实现了一些底层的东西,不然链接的时候一堆extern 声明的显示找不到定义。iar的移植,和keil一样,唯一的区别就是port.c这里,如果按照keil的路径选择编译不成功。

2024-06-21 09:27:29 1034 1

原创 最简单的方法,连续打印多个空格

1、大家都知道,c语言中,我们打印语句时,如果使用\t来控制打印间隔,可能会出现排版错乱问题,所以一般都会使用空格来控制间隔,这样不管在哪个工具上面显示,打印的信息都不会错乱。表示宽度由参数列表中的下一个参数指定,我们将需要输出的空格数量(5)作为参数传递给。2、控制间隔的空格,一般需要多个,如果打印语句较多是,输入起来真的很麻烦。3、所以,有没有快捷方法,能连续打印多个空格字符呢,函数,从而实现输出多个空格的目的。在这个示例中,我们使用了。作为格式字符串,其中。

2024-06-12 09:44:10 682

原创 分享一个fpga任意分频的代码

这里以下降沿计数数,上升沿分频的,时钟最好是50%的,不然容易出问题。分享一个fpga任意分频的代码,非50%占空比的分频代码,补充一个比较简单的,可以固定脉宽的分频代码。这样输出的波形,在分频后还是分频前的脉宽。这里以16以内 的分频为例。

2024-06-05 15:03:34 249

原创 【转】这些年背过的面试题——网络和操作系统基础篇

转自:阿里巴巴技术质量阿里妹导读本文是技术人面试系列网络和操作系统基础篇,面试中关于网络和操作系统基础都需要了解哪些内容?网络基础客户端——发送带有SYN标志的数据包——服务端一次握手Client进入syn_sent状态;服务端——发送带有SYN/ACK标志的数据包——客户端二次握手服务端进入syn_rcvd;客户端——发送带有ACK标志的数据包——服务端三次握手连接就进入Established状态;主要是为了建立可靠的通信信道,保证客户端与服务端同时具备发送、接收数据的能力。

2024-04-18 08:46:00 689

原创 [FreeRTOS] 调用vTaskSuspend后,通过vTaskResume恢复任务无法响应

串口接收中断函数:通过设置(give)一个信号量标记,告诉串口接收主任务函数,可以进行接收串口数据了。调用vTaskSuspend挂起任务后,通过vTaskResume恢复任务,恢复的任务无法响应。观察led任务,发现灯还可以闪烁,说明RTOS任务能正常切换,操作系统未被挂死。串口接收主任务函数:等待信号量,接收数据,将数据送入队列。按道理已经恢复任务了,应该可以响应正常的指令才对。

2024-04-15 11:21:15 342 1

原创 ccs识别不了头文件的问题

src下新建了个.c它使用的是总工程默认的属性编译选项,所以他识别不了src配置的这些编译选项。这种方式,把src和prj_cfg上的扳手 符号取消掉,然后把这些配置,添加到主工程的编译配置。1、今天在已经编译好的工程里添加功能,发现新加的.c引用原来工程的头文件时,死活不成功。这样搞,太复杂了,居然有这样的bug,就不应该提供每个文件夹单独配置编译属性的功能!中了,因为原来工程已经编译OK了,工程里其他的.c会引用该文件。-----------------这就很垃圾,没法搞。2、很肯定原来的.h所在。

2024-03-28 15:50:11 826 1

原创 sin函数值记录表

sin90=1。

2024-03-05 14:18:07 846

原创 crc16计算

/ 调用CRC函数计算CRC值。printf("crc16_2 分段计算出 value: %X\n", result);// 调用CRC函数计算CRC值。crc16计算,以生成式G(x)=x16+x15+x2+1,为例。

2024-03-01 16:09:03 552

原创 const和指针结合 记录

uint8 const* sPtr:表示sPtr指向的内容为常量,也就是说,const uint8 * sPtr,和上面一样,放在类型前后无关;,指针地址无法修改,在定义时初始化好的,无法指向其他对象!

2024-01-30 11:12:06 406

原创 微信支付转账延迟设置在哪

原先在服务--》钱包里找,找了半天都找不到,浪费时间。1、新版本微信更新后,转账延迟设置找不到了。2、网上搜了半天每一个对的,浪费时间。”--》进去后,点击。就可以设置到账时间了。

2024-01-22 14:55:42 817

原创 LWIP_HOOK_UNKNOWN_ETH_PROTOCOL宏定义使用方法

通过包含头文件的方式,不利于移植;如果调用lwip是通过lib方式调用,那这个lwip.lib移植就受限,不灵活,必须将LWIP_HOOK_FILENAME 具体的路径包含在工程里,不方便在不同工程调用。例如,你可以决定如何处理这些未知类型的数据包,例如将其转发到另一个接口、将其丢弃或将其传递给应用程序进行处理。这样改动小,也方便移植,自己在不同工程中自定义自己的eth_unknow_type_hook函数即可。2) 使能LWIP_HOOK_UNKNOWN_ETH_PROTOCOL,对应都具体的函数。

2024-01-18 11:00:48 423 1

原创 freertos任务管理器,任务监控

例如,如果一个任务调用vTaskDelay(),它将被阻塞(被置于阻塞状态), 直到延迟结束-一个时间事件。处于阻塞状态的任务通常有一个"超时"期, 超时后任务将被超时,并被解除阻塞, 即使该任务所等待的事件没有发生。与“阻塞”状态下的任务一样, “挂起”状态下的任务不能 被选择进入运行状态,但处于挂起状态的任务 没有超时。当任务实际执行时,它被称为处于运行状态。准备就绪任务指那些能够执行(它们不处于阻塞或挂起状态), 但目前没有执行的任务, 因为同等或更高优先级的不同任务已经处于运行状态。

2024-01-12 14:43:35 1040

原创 调用lwip的函数,在LWIP_ASSERT_CORE_LOCKED()出错

1、lwip在很多函数里都加了LWIP_ASSERT_CORE_LOCKED断言判定,比如我直接发送以太网报文是,调用ethernet_output函数就有这个判定。已解决:MCUX SDK和lwIP -- 使用LWIP_ASSERT_CORE_LOCKED - 恩智浦社区 (nxp.com)就是检测锁有没有lock啊(前提是使能了LWIP_FREERTOS_CHECK_CORE_LOCKING)

2024-01-08 11:57:20 889

原创 原来圣诞树可以这么做---超简单

依次排下去,最后加4个单位数的数字。原来代码的世界里还有这个美。

2024-01-05 14:08:30 415

原创 lwip发送组播数据问题

在ip4_route函数中,使能组播后(LWIP_MULTICAST_TX_OPTIONS=1),貌似这个代码。2)或者通过ip4_set_default_multicast_netif,强制设置一个网卡为默认组播网卡。1、今天测试组播包发现,组播数据只能在默认网卡发送成功,多次交叉测试依然这样,所以和网卡的配置无关。函数,将ip4_default_multicast_netif设置为NULL,则取消这个限制,需要改ip4_route,或者ip4_route_src 函数代码啊。限制死了发送数据的网卡啊,

2024-01-03 18:07:02 725 3

原创 lwip初始化网卡和使用

2)我们要把网卡 gnetif挂载到netif_list链表上才能使用,因为LwIP是通过链表来管理所有的网卡,所有第二步是通过netif_add()函数将我们的网卡挂载到netif_list链表上。总之一句话,在开始使用LwIP协议栈的时候,我们就需要将网卡底层移植完成,才能开始使用,而移植的第一步,就是将网络进行初始化,并且设置该网卡为默认网卡,让LwIP能通过网卡进行收发数据。1)lwip把网卡抽象成netif结构体了,所以需要先定义一个网卡结构体变量struct netif gnetif。

2023-12-29 11:22:48 617

原创 setsocket函数,<设置组播属性>

具体的实现函数是:lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_t optlen)源码位置\lwip\lwip-stack\src\api\sockets.c中,lwip的setsocket函数可以设置很多属性,

2023-12-21 16:59:34 551

原创 ICMP相关记录

icmp是差错控制报文常见的ping就属于ICMP报文

2023-12-18 09:53:22 79

原创 ARP相关记录

lwIP 描述ARP 缓存表和ARP 相关处理函数由etharp.c/h 文件定义

2023-12-17 20:05:05 202 1

原创 LWIP源码认识记录

2、demo例程与移植:lwip\lwip-contrib。1、内核:\src\core的各源文件含义。

2023-12-17 17:54:37 58

原创 明明我在头文件写了宏定义,为啥还提示未找到use of undeclared identifier

如果NUMBER_OF_INTERFACES是在一个特定的作用域内定义的(例如函数内部),那么在外部作用域中可能无法访问该宏。确保在board.c文件中包含了包含NUMBER_OF_INTERFACES定义的头文件。一直提示NUMBER_OF_INTERFACES宏未定义,我找这个错误找了好久,可明明我在头文件已经包定义了#define NUMBER_OF_INTERFACES 2。在代码中直接使用NUMBER_OF_INTERFACES作为数组的长度,但是没有加上中括号[],因此编译器无法正确展开宏。

2023-12-11 09:34:40 3472

原创 如何在case中定义局部变量

众所周知,在switch case结构中,定义变量,编译器会报错,那有什么办法能在case中定义变量,不让报错吗?

2023-12-08 11:39:55 290

原创 常用的DNS地址记录一下

2、阿里云DNS,223.6.6.6 还有一个223.5.5.5这一个PING值50多。服务ip为:114.114.114.114 和 114.114.115.115。拦截 钓鱼病毒木马网站 增强网银、证券、购物、游戏、隐私信息安全。1、百度公共DNS服务IP:180.76.76.76。以上DNS按需设置,一个慢就换一个。4、 电信:首选:101.226.4.6。5.联通:首选:123.125.81.6。6.移动:首选:101.226.4.6。7.铁通:首选:101.226.4.6。

2023-11-27 16:46:15 1834

原创 记录几个自己常用的正则表达式

*Modified.*\r\n : 选中含有字符Modified的所在行。^.*[$] :选中$符之前的字符,包含$自身,从每行的开头开始。

2023-10-16 15:55:56 84

ccs下的Jlink驱动文件

ccs9下的Jlink驱动文件,最新的可能有问题

2023-05-08

STM32L0x1 M0 系列主控芯片的外设寄存器列表

STM32L0x1 M0系列主控芯片的外设寄存器列表,详细介绍每个寄存器和外设使用

2021-10-12

wxWidgets-2.9.5 帮助文档

wxWidgets-2.9.5 帮助文档,开发GUI用到;wxWidgets-2.9.5 帮助文档,开发GUI用到;wxWidgets-2.9.5 帮助文档,开发GUI用到;;wxWidgets-2.9.5 帮助文档,开发GUI用到

2016-02-24

2002-2009年中科院微电子所考研专业课《信号与系统》试卷.

pdf文档,将以前02-09所有的信号与系统专业试题整理到一块了,考研专用,中科院微电子所的;pdf文档,将以前02-09所有的信号与系统专业试题整理到一块了,考研专用,中科院微电子所的

2014-12-17

空空如也

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

TA关注的人

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