自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 分享一个小问题----在已有Freertos系统情况下,移植不同芯片出现的问题:创建任务成功但不运行任务

前提:在一个原本使用的是stm32F1xx的带rtos的系统项目基础上修改另一个项目,另一个项目使用的是stm32f2xx。在移植芯片的过程出现了任务跑不了的情况,以往经验是rtos配置的heap区不够大,这次却不是这个原因。而后才知道是偏移位的问题。上个项目的地址偏移我其实已经修改了,我的项目是有偏移位的配置宏的,但是因为我更换了库,在库中还有一个定义,就在system_stm32f2xx.c中的SystemInit()函数中。将这个偏移位修改成你项目的偏移位,我的是0x10000。

2025-03-24 16:06:06 146

原创 Cut命令的使用

cut是一个在linux操作系统中剪字符的工具,可以将一段字段剪切后输出。

2025-02-26 17:26:10 360

原创 shell脚本的一些学习笔记----(三)流程控制

例如两个shell:A.sh和B.sh,A.sh里执行B.sh,并且可以通过B.sh的执行返回值来决定要干什么事情,比如B.sh中是否正确完整的执行了,如果执行成功就返回1,A.sh只有收到B.sh的1才会往下执行,不然就会终止。这里的判断条件出现了[0-9]、[a-z]这类的范围判断,这个[ ]内代表着一个范围,其中任何一个在这个范围内的字符都满足[0-9],而且这里有个注意事项,即[ ]的内部不能出现空格,必须连续的0-9,包括0-9前后也不能出现空格。如果变量的值都不是以上的值,则执行此程序。

2025-02-13 18:04:20 1001

原创 linux笔记3----防火墙(ubuntu)

首先关闭ufw和关闭防火墙不一样。如果采用ufw查看状态,看到的是关闭了,但是systemctl中查看ufw的状态还是开启的,也就是说,ufw中关闭防火墙(sudo ufw disable)只是在ufw中禁用了,但是本质ufw的服务还是没有关闭。所以关闭防火墙需要禁用功能且关闭ufw服务(应该可以直接关闭ufw服务,可以试试,ufw服务关闭后也就不存在禁用不禁用的说法了,本文重点阐述只禁用ufw的防火墙管理功能有时候没效果,要关闭ufw服务)。从ufw中查看,即ufw这个前端工具的防火墙功能管理是否开启。

2025-02-13 10:22:30 480

原创 shell脚本的一些学习笔记----(二)

ge (great than or equal)检测左边的数是否大于等于右边的,如果是,则返回 true。-le (less than or equal)检测左边的数是否小于等于右边的,如果是,则返回 true。-gt (great than)检测左边的数是否大于右边的,如果是,则返回 true。-lt (less than)检测左边的数是否小于右边的,如果是,则返回 true。即可以限时多少秒内输入。-s 是隐藏输入内容,类似你输入密码的时候,会变成****一样的道理,这个是直接没有显示。

2025-02-11 14:46:52 778

原创 shell脚本的一些学习笔记----(一)

在一个脚本周期内,其值可以发生改变的量就是变量。

2025-02-07 14:08:29 893

原创 一些Linux常用到的快捷键

显示系统最近的一条参数,比如先用 cat /etc/sysconfig/network-scripts/ifconfig-eth0,然后我想用 vim 编辑。一般的做法是先用↑ 显示最后一条命令,然后用 Home 移动到命令最前,删除 cat,然后再输入 vim 命令。其实完全可以用 vim!Alt + Tab 同 Windows 下的 Alt + Tab 组合键,在不同程序窗口间切换。Ctrl + Alt + D 类似 Windows 下的 Win + D 组合键,显示桌面。

2025-02-05 09:26:54 310

原创 知识记录---使用带有linux内核的嵌入式系统

串口方式:采用串口的连接模式,其中用到了USB转TTL的模块,将PC和模块和终端连接,在设备管理器中看到com口显示,就可以通过串口进行配置了。这里我用的是我们公司自己开发的串口模块,采用的是CH340的芯片。然后我使用的是putty远程工具,打开在serial的配置中将最后一项修改为none然后Open,等待连接。

2024-11-19 09:42:34 941

原创 PCA9539R/MH1241--IO扩展芯片使用历程

PCA9539R:MH1241:其中INT是中断输出(开漏),我没咋用。Ax就是可编程地址。VDD和VSS是电源V3.3和GND。SDA和SCL就是I2C通讯的数据和时钟总线。剩下的IOx_x就是通过I2C控制的IO们。细心的小伙伴可能会发现,MH1241相比PCA9539R少了一个REST脚,取而代之的是多了一个A2脚。没错,这就是我最后遇到坑的地方,后面细说。这个REST脚是用来重置芯片用的,断电后持续一定时间再上电就能激活重置功能。无论是软件还是硬件,严谨都非常重要。

2024-11-19 09:12:57 621 2

原创 给已经写好的裸机程序移植freeRTOS操作系统(四)--完结篇

在我移植的第二篇文章最后,我把带secure字样的汇编指令注释掉了,当时就奇怪,肯定有人不用安全区的啊,为什么我在config的宏关闭了安全区配置,而你这个文件中居然还能报出跟安全区配置有关的错误?我在FreeRtos文件中看到了一个ARMCLANG文件夹,点进去只有一个txt文件,内容提示了:如果你使用的是ARMCLANG编译器,请直接选择GCC文件夹。于是我知道问题出在哪了,因为我没有使用正确的文件夹,导致portasm文件中的汇编指令不同,导致了配置的各种bug出现。原来是我根本都用错文件夹了。

2024-11-01 14:57:31 1007

原创 给已经写好的裸机程序移植freeRTOS操作系统(三)

静态需要在创建任务之前分配空闲任务和定时任务的堆栈还有任务控制块内存,这里忽略(自行研究)。空闲任务和定时器任务的创建是在调度器内部实现的,只不过动态创建内存是自动分配,不需要主动分配而已,而静态需要自己分配一下这两个任务的内存,就那么简单。我使用的是静态创建任务的方式。直接来结论:是因为前两章配置中删除了portasm.c中PendSV_Handler的某些汇编指令,导致的问题。第一怀疑是任务创建成功了没,打印出ret的值,如果是NULL就是失败。首先介绍一下我的创建任务流程和发现问题的过程。

2024-10-31 15:07:05 368

原创 给已经写好的裸机程序移植freeRTOS操作系统(二)

其它基于M3或者M4的处理器中是没有在port.c中直接定义SysTick_handler函数的..所以我盲猜是M23处理器的FreeRTOS配置文件中直接给你写好了中断。并且重定义的文件是port.c和gd32e23x_it.c中。又是重定义,重定义是因为我的gd32e23x_it.c中的SVC_Handler和PendSV_Handler与RTOS中自带的中断冲突了。而基于M23的处理器是没有这个东西的,直接把原先的定时器中断注释掉,默认使用port.c中定义的中断即可。编译,重定义的报错没了。

2024-10-25 13:51:04 1019

原创 给已经写好的裸机程序移植freeRTOS操作系统

接了公司一个项目,这是一个采用Dante模块把I2S数据通过网络交换机转发的音频控制器。包含两个串口配置。一开始以为使用裸机即可满足项目要求,实际上如果只有一个串口确实能满足要求了,现在发现Dante模块也需要串口通讯,2个串口同时存在下,裸机程序开始变得不可靠。于是决定移植个RTOS系统进去。

2024-10-24 18:05:50 990

原创 ubuntu14.04.5出现配环境后重启进不了图形化界面解决记录

而本人又想使用systemctl的控制命令,于是就听信网上的歪门邪道安装了systemd,虽然后面我知道这样其实可以做到,但是当时就是因为这个谜之操作让我陷入了错误的方向。使用ubuntu后我发现,该14.04.5版本下无法使用systemctl,才知道这个版本太低了,旧版本的ubuntu不是采用systemd的,然后查了一下发现自己这个版本用的是SysVinit。/usr/bin/X是一个二进制可执行文件,它是启动X服务器的主要程序之一,是由xinit或者startx间接执行的。好嘛,那我就装一个嘛。

2024-08-31 15:13:53 594

原创 makefile笔记

通过示例来了解:假设有3个头文件和8个c文件,我们要编写一个makefile来告诉make命令如何编译和链接这些文件。如果makefile编写的合理,这一切都能通过make命令完成,make命令会自动智能根据当前情况进行编译和链接。2 如果这个工程编译过了但修改了某些c文件,我们只需要编译被修改的c文件并链接。3 如果这个工程的头文件改变了,我们只需要编译并链接引用了修改的头文件的c文件。1 如果这个工程从未被编译,那么我们要编译和链接所有c文件。

2024-08-31 14:28:17 284

原创 Srouce Insight 4出现乱码

今天用SI4打开一个工程文件,一打开发现注释全是乱码。中文全部看不出来,英文和数字可以看得出来。于是找到File下拉菜单,里面有一个选项Reload As Encoding。找到菜单的Options-Preferences里面的Files。那是因为中文的编码格式不算特别兼容。所以需要调整编码格式。调整后退出发现仍然不能解决问题。重启后仍然不能解决。在这里重新设置成:UTF-8 with BOM。

2024-06-20 22:49:54 310

原创 各类存储器类型(RAM、ROM、FLASH、DRAM、SRAM)

虽然说ROM无法修改,但有些从ROM变种的存储类型是可以擦除的,例如EEPROM。总体来看,RAM是随机存储器,可以读可以写,能擦除数据,不过掉电就丢失数据了。NOR Flash:它带有SRAM接口,有足够的地址引脚来寻址,可以方便地存取其内部的每一个字节,因此可直接连接总线系统,构成内存储器。容量越大的,速度越慢。Flash是EEPROM的变种,不同的是EEPROM能在字节水平上进行擦除重新,而Flash需要在块的水平上进行擦除。RAM的R代表的是随机的意思,ROM的R代表的是读数据的意思。

2024-06-19 10:02:19 1675

原创 关于指针的一些零碎知识(一)

以下知识部分取自网页,多数为自己的理解,欢迎大佬纠错。

2024-06-05 14:44:15 961

原创 C语言中memset()以及memcpy()函数使用方法

在函数memset(void *A,int B,int C);语句中,程序完成了将A指针指向的内容开始往后的C个字节内容置为B。memset()一般情况是用于初始化使用的,它可以给一个内存块赋一个值。例如下列函数,最终结果是:cps数组内容为:2222222222。先说这个函数的每个参数的含义。

2024-06-03 17:10:31 246 1

原创 YUV颜色空间

而YUV就不一样,它是一个Y亮度信号和UV色度信号构成,如果没有UV信号也可以生成可视化图像,只不过是黑白的。RGB和YUV一样都属于颜色空间,RGB的原理是通过Red、Green、Blue三原色搭配组成不同的颜色,这三个原色是人类能看到的所有颜色的基础原色。例如:YUV4:4:4 就是每1个亮度信号使用1个色度和1个饱和度信号,比例对等,一对一。YUV4:2:2 就是每2个亮度信号共用1个色度U信号和1个饱和度V信号。YUV4:2:0 就是每4个亮度信号共用1个色度U和1个饱和度V。

2024-06-03 11:37:16 241

原创 HDMI接口基础

上图就是19Pin的Type-A接口定义,其中数据和时钟端口为什么会有1-和1+?因为如果只有一根数据线,出现电磁干扰的时候就会乱。举个例子,可能本来定义3.3V为高,结果一不小心干扰一下变成2.7V,高信号变成低信号,乱套了....所以它很聪明的设置了两条互逆的信号,1+为高,1-就为低。然后在最终数据接收的时候不直接接收1+数据,而是用1+减去1-数据得到相对电压数据,这样即便干扰也是两根一起干扰,例如3.3V为高,0V为低。

2024-06-03 10:27:42 1987

原创 (1080p和1080i区别)分辨率后面的p和i的区别

垂直分解力下降是因为隔行扫描需要保持严格的行频场频,还需要保证偏转电流和磁场保持稳定的线性,不然会导致两场画面不能完美嵌套,可能会有部分行重叠现象,该现象称为并行。最后,隔行扫描的压缩处理和后期处理也是比较困难的,例如为了两场显示,隔行扫描必须多一个场存储器。隔行扫描分为两场,第一场扫描奇数行,第二场扫描偶数行,两场分前后,这样就可以显示全部的像素信息了。我们常见的分辨率中,总会出现后缀有字母的分辨率,例如1080p和1080i,那这里的p和i有什么区别,分别表示什么意思呢?

2024-06-03 09:39:14 4208

原创 24.5.30-SI新建工程+keil工程移植脚本操作

手动添加环境路径方式:我的电脑右键-属性-高级系统设置-高级-环境变量-系统变量,在系统变量的表里找PATH,如果没有自己新建一个。Pip需要找一下,在python的文件夹里。-----------至此python和环境路径和相关库函数组装完成。先操作脚本生成可以被SI识别的txt文件,该txt文件由某个python脚本生成,既然是需要跑python脚本,就要先安装python解释器。安装python需要注意,3.5之前的版本可能不能自动在安装时添加系统环境路径,所以可能需要手动添加。跑脚本,双击就能跑。

2024-05-30 14:19:40 937

原创 Source Insight下载+破解

紧接着安装后选择30天试用(需要填名字之类的信息,联网后会成功安装)。更改为前一天,即可继续使用。一段时间后,提示过期后,将。:用十六进制编辑器(

2024-05-30 14:17:34 3988

原创 HDMI之HPD

当计算机主机上的显卡检测到DVI接口HPD引脚电压大于2V时,判断为显示器通过DVI接口与主机连接:当检测到HPD引脚电压小于0.8V时,则判断为显示器与主机之间的DVI连接已经断开。主机通过HDMI的第18脚(PWR_CON_PIN18)将+5V电压加到显示器的DDC存储器。3、主机(显卡控制器)检测到HPD为高电平时,判断显示器通过HDMI与主机连接,并通过。,以便源设备重新读取EDID信息。(HPD也是由主机的18脚的5V信号产生的,也就是说在。显示器检测到稳定的5V电压信号后,会把HPD信号拉高。

2024-05-30 14:16:14 2079

原创 linux笔记2----权限

在linux操作系统里常常看得到这种东西:这个是属性和权限。

2023-05-25 23:36:19 387

原创 linux笔记1

这个DATE就是名字,因为是date命令,然后后面的数字1代表的是date这个命令是当前用户在shell环境中可以操作的命令或者可执行的文件。包含内容:语系显示和更改、日期显示、格式化日期、日历打印、bc计算器使用、命令的操作说明文档的使用、以上的按键均只能在man page的界面中使用。----输出某年某月的日历。quit:退出计算器。

2023-05-25 20:38:21 130

原创 蓝桥杯C语言练习题目(十六)---- 货物摆放

蓝桥杯C语言练习题目(十六)---- 货物摆放

2023-04-03 13:56:42 332

原创 蓝桥杯C语言练习题目(十八)---- 饮料换购(数学问题)

蓝桥杯C语言练习题目(十八)---- 饮料换购(数学问题)

2023-03-25 01:46:46 1160

原创 蓝桥杯C语言练习题目(十七)---- 棋盘放麦子(long long型变量)

蓝桥杯C语言练习题目(十七)---- 棋盘放麦子(long long型变量)

2023-03-25 01:01:23 896

原创 蓝桥杯C语言练习题目(十五)----数的分解

蓝桥杯C语言练习题目(十五)----数的分解

2023-03-23 20:07:19 256

原创 蓝桥杯C语言练习题目(十四)----特别数的和

蓝桥杯C语言练习题目(十四)----特别数的和

2023-03-23 13:55:41 327

原创 蓝桥杯C语言练习题目(十三)----年号字串

蓝桥杯C语言练习题目(十三)----年号字串

2023-03-23 13:51:44 273

原创 低进制转换十进制

主要为简单的 低进制转换成十进制

2023-03-16 12:24:17 142

原创 蓝桥杯C语言练习题目(十二)----时间显示

蓝桥杯C语言练习题目(十二)----时间显示

2023-03-16 11:48:58 194

原创 蓝桥杯C语言练习题目(十一)-----求最大公因数

蓝桥杯C语言练习题目(十一)-----求最大公因数

2023-03-09 22:45:01 91

原创 蓝桥杯C语言练习题目(十)---- 等差素数

蓝桥杯C语言练习题目(十)---- 等差素数

2023-03-08 21:08:30 105

原创 蓝桥杯C语言练习题目(九)---- 跑步锻炼

蓝桥杯C语言练习题目(九)---- 跑步锻炼

2023-03-07 17:47:55 247

原创 蓝桥杯-C语言练习题(八)----蛇形填数

蓝桥杯-C语言练习题(八)----蛇形填数

2023-03-04 20:10:05 394 1

原创 C语言练习题目(七)----成绩分析

C语言练习题目(七)----成绩分析n个学生求最大值和最小值还有平均数

2023-03-04 15:43:57 597

空空如也

空空如也

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

TA关注的人

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