自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 C语言 LSB->MSB,MSB->LSB转换

在C编程中,会遇到lsb和msb相互转换的问题,这里有一种比较高效的转换方式,提供了32位、16位、8位数据的lsb和msb互转的算法,亲测没有问题,

2023-10-31 11:40:39 691

原创 lwip udp无法发送大于1472字节数据问题解决

1.问题定位首先抓包工具进行抓包wireshark勾选UDP 协议的checksum选项抓包以后发现是udp的checksum有问题2.原因剖析有些网卡的硬件校验对于小于1500字节的数据的校验计算是正确的,大于1500字节的数据的校验计算是错误的,导致接收端无法接收。3.解决之道根据以上原因我们应该禁用网卡的硬件校验,使能lwip的软件校验便可以成功解决这个问题。另外还需要打开IP_FRAG 和 IP_REASSEMBLY两个宏定义,打开分包发送功能,使能这两个宏,只要

2021-04-30 14:39:55 4294

原创 lwip udp无法发送超过1500字节数据

1.检查opt.h内IP_FRAGIP_REASSEMBLY两个宏是否打开,一般默认是打开的,这两个宏定义跟ip分包有关。2.如果以上宏定义打开还出现这个问题,那十有八九是网卡的问题,最好用抓包工具抓一下,看看数据有没有发出来,其次检查checksum是否正确。3.如果checksum不正确,请关闭网卡的硬件checksum,使能lwip软件checksum校验的宏定义。比如我遇到的问题是checksum不正确,发现是网卡硬件checksum在超过一定数据长度后就不正确了,关掉,打开软件生成..

2021-03-19 16:59:56 1425

原创 FreeRTOS运行不稳定的原因记录

最近用FreeRTOS开发一个商用项目,用到了FreeRTOS,测试时发现一个奇怪的问题,代码运行一段时间后要么fault,要么某个任务像死了一样不在运行。找了很久没找到是什么问题,最后无奈,打开了FreeRTOS调试功能发现以下代码报错。#if( configASSERT_DEFINED == 1 ) void vPortValidateInterruptPriority( void ) { extern uint32_t ulPortGetIPSR( void ); uint32_t u

2020-10-12 16:06:53 4056

原创 Xilinx vivado2020.1官网下载链接

Vivado Design Suite HLx Editions - Accelerating High Level DesignThe new Vivado® Design Suite HLx editions supply design teams with the tools and methodology needed to leverage C-based design and optimized reuse, IP sub-system reuse, integration automati

2020-09-25 11:08:27 7441

原创 LWIP+FreeRTOS调试笔记

问题:LwipAssert:memp_malloc: memp properly aligned和memp_free: mem properly aligned解决方法:FreeRTOS自身会设置Systick等中断的优先级,具体看port.c文件,如下图:而我在其他地方重新设置了Systick的中断优先级,打乱了FreeRTOS的设置,导致不能进行临界段保护,即进入了临界段,依然会发...

2020-09-16 16:40:13 474

原创 LWIP+FreeRTOS双网卡调试笔记

软件版本:FreeRTOS10,lwip1.4.1平台:Ti TM4C1294开发环境:CCS 6问题:网卡1能够ping通,网卡2无法ping通解决办法:通过打开LWIP_DEBUG选项,然后打开IP_DEBUG选项跟踪调试,发现执行到如下代码内,导致ping不通也就是说netif =NULL,导致ping不通,我单步跟踪了消息队列内的网卡,发现不是NULL,那说明问题...

2020-09-16 16:38:54 1489

原创 TM4C1294移植FreeRTOS注意事项

在Ti的TM4C1294平台上移植FreeRTOS和在STM32上基本移植,但有一点需要注意,就是中断的优先级设置,stm32优先级分组是4位,而TM4C是三位。具体参考TM4C的datasheet的APINT寄存器的说明。在裸机的状态下,中断可以设置抢占优先级和从优先级,在FreeRTOS里,中断只有抢占优先级,没有从优先级,所以优先级分组必须全部设置成抢占式,否则会有异常。所以在TM4...

2020-09-16 16:38:28 582

原创 lwip1.4.1双网卡调试笔记

平台:Ti TM4C1294网卡1:TM4C1294内置网卡网卡2:亚信AX88796B,兼容NE2000标准网卡,接口类型ISA16bit,TM4C EPI驱动面临问题:在ARP协议调通的情况下(其他主机可以识别此网卡),TM4C内置网卡可以ping通,外置网卡ping不通。通过抓包发现是校验问题导致问题分析:由于内置网卡可以进行硬件校验,所以关闭了软件生成校验的宏定...

2020-09-16 16:37:35 1009

原创 STM32F103C8 HAL EC11编码器

1.CubeMX配置2.代码static void MX_TIM3_Init(void){ TIM_Encoder_InitTypeDef sConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; /* USER CODE BEGIN TIM3_Init 1 */ /* USER CODE END TIM3_Init 1 */ htim3.Instance = TIM3; htim3.Init.Pr

2020-09-08 18:08:24 1345

原创 *.so文件建立软链接

linux下的软链接类似window下的快捷方式,在linux下开发一个项目用到openssl,编译的时候找不到相关动态库,查看usr/lib下发现openssl的so文件没有软链接,用如下命令可以给*.so文件添加软链接。命令格式:ln -sf a bln -sf libssl.so.1.1 libssl.soln -sf libcrypto.so.1.1 libcrypto.so...

2020-08-20 17:52:58 5004 1

原创 LattePanda开发板救砖

手头有一块LattePanda开发板,CR110版本的,DFRobot出了10.1英寸的屏幕,就买来试了一下,不过要支持这款屏幕,需要刷入专用BIOS,但是这个BIOS只给CR200版本的板子出了,其他版本的板子没有,卧槽,MMP,买屏之前没有仔细看,买了之后发现买了个大坑,算了买都买了,MMP,LZ赌一把,强刷BIOS试试,之所以这么决定是因为我分析了BIOS发现各大版本硬件差异不大,即便刷成了砖块,也有CH341来救砖,即便真的就不回来,也不损失啥,因为板子是白嫖的,就这样下好了BIOS,进入原有BIO

2020-07-03 13:05:01 1215 2

原创 记一次systick不中断故障排除

移植FreeRTOS,只运行一个任务,不能进行任务的调度和切换,倒也不fault,后来经过单步调试,发现xPortSysTickHandler函数断不下来,也就是说systick中断一直被屏蔽了,也就导致FreeRTOS不能进行任务切换,也不能抢占。继续寻找原因发现执行taskENTER_CRITICAL()之后,按理要执行taskEXIT_CRITICAL(),结果我没看仔细将宏搞错了,执行了taskENTER_CRITICAL_FROM_ISR(),然后就吡了,相当于程序一直在临界区,systick .

2020-07-03 11:21:11 843

原创 树莓派3B无法开机

最近测试一个树莓派的扩展板,结果树莓派无法开机了,我还以为我把CPU搞挂了,毕竟GPIO直连CPU,连个隔离措施都没有,在耐操和成本之间树莓派放弃了耐操选择了成本,毕竟树莓派太容易坏了,我都不怎么玩GPIO,不过这么设计能很好提高树莓派的销量,毕竟坏了压根没有地方去修,一来芯片买不到,即便是买到了,对于没有专业设备的玩家来讲,太难焊了,所以一般坏了你只能买新的。○●○:闪烁 ●●●:常亮 ○○○:不亮 ●○●:有规律闪烁我的是第二种,重新烧写镜像一般可以解决。第四种也要重新烧写镜像。出...

2020-06-10 13:03:21 1711 4

原创 QT编译在注释中遇到意外的文件结束

QT版本:5.13取消函数外的/************************************/类型注释,就可以编译通过,原因未知,或者函数外的/************************************/类型注释用//替代。

2020-06-03 12:45:11 772

原创 关于wolfssl RSA加密与解密注意事项

wolfssl 运行在单片机上,操作系统FreeRTOS,我的秘钥长度是2048bit,需要说明的是栈大小至少5KB,小于5KB会Fault,而且还是疯狂的fault。

2020-05-27 11:39:58 727 2

原创 Wolfssl RSA解密

#include "wolfssl/wolfcrypt/rsa.h"#include <wolfssl/wolfcrypt/wc_port.h>#include <stdio.h>extern TaskHandle_t rsa_decrypt_Task_Handle;int len =128;byte out[128] = {142,82,162,181,22,125,59,109,49,194,185,79,96,23,45,251,137, 20, 5.

2020-05-26 11:24:36 855

原创 wolfssl RSA加密和解密

int main(){ RsaKey enc, enc2; int ret,len; RNG rng; byte out1[256] = { 0 }; byte out2[128] = { 0 }; byte msg[] = { 1,2,3,4,5 }; byte out[2048] = { 0 }; wc_InitRng(&rng); ret = wc_InitRsaKey(&enc, NULL); if (ret != 0) { cout <&.

2020-05-25 16:28:15 1351

原创 FreeRTOS 各版本下载

方法1:访问https://github.com/FreeRTOS/FreeRTOS/releases下载相应的版本;方法2:访问https://sourceforge.net/projects/freertos/点code选项然后点击tags出现如下界面,选你想要的版本下载即可

2020-05-21 15:16:20 9290

原创 Heap_4.c

/* Copyright 2018 Canaan Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LIC.

2020-05-21 15:08:28 424

原创 多用户无法使用的问题

1.配置多用户,编辑s*s的脚本配置文件vi /etc/shadowsocks.json打开以后将原来的删掉,用一下内容替代,port_password根据用户数量添加,格式:"端口":"密码"{ "server":"0.0.0.0", "local_address": "127.0.0.1", "local_port":1080, "port_password": { "2333":"mima12345", "6666":"mima1234...

2020-05-09 14:02:18 316

原创 mbedtls rsa使用pem文件

最近有个项目需要用到rsa加密和解密,平台是cortex-m4单片机,于是我想用炒的比较火的mbedtls库实现。既然这玩意炒的比较火,资料应该不少才对,上手以后才发现资料少的可怜,仅有的资料基本都是在注水,参考意义不大,pem格式的秘钥操作这一块基本相当于没有资料,只能自己硬着头皮搞了。搞了两天以后终于搞出来了。关于pem相关知识这里不做介绍,我就直接贴代码。#if !defined(...

2020-05-07 17:36:58 4321 9

原创 lwip select函数分析和优化

我的设备有两个网卡,我需要开两路socket,一路UDP,一路TCP,lwip的版本是1.4.1的,实际运行发现,UDP 运行一段时间以后挂了,通信挂了,线程继续运行,调试发现select 函数读取read_fds.fd_bits始终等于0,导致UDP发回来的数据不能被读取,UDP线程像死了一样。 FD_SET(sockfd,&read_fds); s...

2020-03-27 17:17:01 4914 2

原创 修复LWIP_ASSERT ("p->ref == 1",p->ref == 1)bug

问题出现在1.4.1版本的版本问题出在ip.c修复加入之后,问题成功解决。参考:https://lists.gnu.org/archive/html/lwip-devel/2012-10/msg00028.html

2020-02-25 19:48:49 1188

原创 TM4C Hibernate RTC实现

项目有个地方需要RTC,我研究了TM4C Hibernate RTC的Demo,发现了一些问题。TM4C Hibernate实现RTC有个主意的地方就是不能用官方给的demo,我的平台是TM4C1294KCPDT,用官方的demo,调试发现卡在HibernateEnableExpClk(SysCtlClockGet())里,不能用,研究库源码发现这个函数仅仅是置位HIBCTL寄存器的CLK32...

2020-02-20 17:38:16 622

原创 C语言字浮点字符串转化为浮点数据

#include &lt;stdio.h&gt;#include &lt;string.h&gt;#include &lt;math.h&gt;#include &lt;iostream&gt;#include &lt;stdlib.h&gt;double str2double(char *str){ double Int=0.0, Dec=0.0,Result; int i,le...

2018-05-04 21:18:45 1928

RIGOL MSO5000升级固件

RIGOL MSO5000示波器升级刷机包,可以解除MSO5000示波器的选件限制,直接到用MSO5000示波器的所有选件。

2020-10-15

空空如也

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

TA关注的人

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