- 博客(180)
- 资源 (3)
- 收藏
- 关注
原创 FCARM - Output Name not specified, please check ‘Options for Target - Utilities‘
将如下配置改为。
2024-05-11 15:05:33 797
原创 关于C语言 const
1.用const修饰函数的参数,如果参数作输出用,不论它是什么数据类型,都不能加const修饰,否则该参数将失去疏忽从功能;
2024-01-19 13:38:19 373
原创 gitlab环境准备
修改/etc/gitlab/gitlab.rb中的external_url配置访问页面,因为我是本地的虚拟机中安装的,所以可配置虚拟机的IP地址 external_url ‘http://localhost’安装邮件服务的时候会出现邮件配置,使用左右键和回车键选择确定、取消,弹出列表选项的时候,选择Internet Site。gitlab官网下载速度较慢且后续配置较麻烦,所以使用清华大学镜像,网址如下。gitlab只支持linux系统,本人使用Ubuntu作为操作系统,
2023-11-19 18:37:33 887 1
原创 Libero_SoC_v12.2_win软件及License下载安装教程
Libero_SoC_v12.2_win软件及License下载安装教程
2022-11-17 18:19:10 659
原创 STM32H7 emWin用SDRAM做显存时的闪屏问题
屏幕运行一会儿会闪一次的问题这个问题只有在大批量对SDRAM快速操作时才容易出现,特别是仅使用了SDRAM,且将其作为LCD显存的同时,还使用SDRAM狂刷图。解决办法如果在程序中没有使用FMC NE1到NE4这个BANK,而仅使用了SDRAM和NAND(特别是仅使用了SDRAM),将NE1到NE4这4个驱动禁止即可解决。__FMC_NORSRAM_DISABLE(FMC_NORSRAM_DEVICE, FMC_NORSRAM_BANK1);__FMC_NORSRAM_DISABLE
2022-05-23 11:09:06 1155 2
转载 ModelSim 仿真实例
1.在全英文路径下创建如下2个文件源文件:decode38.vmodule decode_38( keyin, led, clk);input clk;input [2:0]keyin;output [7:0]led;reg [2:0]read_key;reg [7:0]led;always@(keyin) begin read_key=keyin; case(read_key) 3'd0: led=8'b1111_1110; 3'd1: led
2022-05-20 23:40:48 719
原创 vscode关闭C/C++红色波浪线
1.打开vscode的设置选项(File -> Preferences -> Settings)2.在搜索栏输入 squiggle3.将出现的 Error Squiggles 选项改为 Disabled
2022-04-18 16:10:59 4153 2
原创 单CPU的ARM原子操作
原子操作就是多线程程序中“最小的且不可并行化的”操作。对于在多个线程间共享的一个资源而言,这意味着同一时刻,多个线程中有且仅有一个线程在对这个资源进行操作,即互斥访问。 单CPU的ARM中要保证资源的原子性,同一资源不能两个及以上的线程有写操作;写操作实际过程(汇编级:1.变量从内从读入内核寄存器;2.修改变量;3.变量写回内存)如果不保证资源的原子性,举例如下全局 int count = 0;C语言级,预期执行一次结果count应该是 2:task1...
2022-03-08 11:07:05 771
原创 STM32 I/O Retargeting
1.半主机模式半主机是用于 ARM 目标的一种机制,可将来自应用程序代码的输入/输出请求传送至运行调试器的主机。 例如,使用此机制可以启用 C 库中的函数,如 printf() 和 scanf(),来使用主机的屏幕和键盘,而不是在目标系统上配备屏幕和键盘。这种机制很有用,因为开发时使用的硬件通常没有最终系统的所有输入和输出设备。 半主机可让主机来提供这些设备。半主机是通过一组定义好的软件指令(如 SVC)来实现的,这些指令通过程序控制生成异常。 应用程序调用相应的半主机调用,然后调试代理处理该异
2022-02-22 13:30:38 909
原创 STM32H7 DMA USART空闲中断接收不定长数据
1.关键设置2.代码2.1 bsp_usart.h/***********************************************************************************bsp_usart.h***********************************************************************************/#ifndef __BSP_USART_H__#define __BSP.
2022-02-11 17:15:42 2066
原创 (6) led驱动--分层设计--总线设备驱动模型
1.具体硬件控制---具体配置//led_opr.h #ifndef _LED_OPR_H#ifndef _LED_OPR_Hstruct led_operations { int (*init)(int which); int (*ctl)(int which,char status);};struct led_operations *get_board_led_opr(void);#endif//led_resource.h#ifndef _LED_RESOURCE_
2022-01-23 22:18:18 322
原创 (5) led驱动--分层设计--具体硬件控制(通用设置、具体配置)
1.具体硬件控制---具体配置//led_resource.h#ifndef _LED_RESOURCE_H#define _LED_RESOURCE_H//bit[31:16] = group//bit[15:00] = which pin#define GROUP(x) (x>>16)#define PIN(x) (x&0xFFFF)#define GROUP_PIN(g,p) ((g<<16)|(p))struct led_resou
2022-01-23 16:13:22 233
原创 (4) led驱动--分层设计-添加具体硬件控制
1.led硬件控制独立层//led_opr.h #ifndef _LED_OPR_H#define _LED_OPR_H struct led_operations{ int (*init)(int which);//初始化LED int (*ctl)(int which, char status);//控制亮(1)灭(0)}; struct led_operations *get_board_led_opr(void); #endif//board_100ask_im
2022-01-23 10:11:30 692
原创 (3) led驱动--分层设计
1.led具体硬件控制部分//led_opr.h#ifndef _LED_OPR_H#define _LED_OPR_Hstruct led_operations{ int (*init)(int which);//初始化LED int (*ctl)(int which, char status);//控制亮(1)灭(0)};struct led_operations *get_board_led_opr(void);#endif#include <linux/.
2022-01-22 22:56:28 395
原创 (2) led驱动--基础版
1.led驱动例程#include <linux/kernel.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/init.h>#include <linux/fs.h>#include <linux/delay.h>#include <linux/poll.h>#include <linux/mutex.h>
2022-01-22 19:05:52 667
原创 (1) hello驱动---不涉及硬件操作
1.linux内核API:register_chrdev函数register_chrdev()调用函数__register_chrdev()实现其功能,函数__register_chrdev()首先调用函数__register_chrdev_region()创建一个字符设备区,此设备区的主设备号相同,由函数register_chrdev()的第一个参数决定,次设备号的变化范围是0~256,设备区的名字为函数register_chrdev()的第二个参数,此函数将更改/proc/devi...
2022-01-22 13:04:06 966
原创 (0) linux开发驱动前环境准备
1.为什么编译驱动程序前要先编译内核:1.由于驱动程序需要用到内核文件。2.编译驱动时用的内核和开发板上用的内核要一致,编译工具链也要一致。3.更换了内核的板子,其他驱动也需要更换为用同一内核编译生成的驱动。2.编译内核镜像...
2022-01-18 23:26:19 957
原创 分布式版本管理工具Git的使用
37651@DESKTOP-UUQ92CT MINGW64 ~/Desktop/GitTest$ git config --global user.name "zxp"37651@DESKTOP-UUQ92CT MINGW64 ~/Desktop/GitTest$ git config --global user.email "376514883@qq.com"37651@DESKTOP-UUQ92CT MINGW64 ~/Desktop/GitTest$ git config --list.
2022-01-15 22:04:26 236
原创 一步一步理解Makefile
1.工程文件内容2.编译过程及运行3.makefile说明.PHONY:all clean #解析阶段执行(此行下边部分)SRCS = $(wildcard *.c) #获取当前目录下的.c文件OBJS = $(SRCS:.c=.o) #把SRCS的所有.c文件改为.o文件存入OBJSDEPS = $(SRCS:.c=.d) #把SRCS的所有.c文件改为.d文件存入OBJSBIN = mp3all: $(BIN) $(DEPS) .
2022-01-08 12:09:03 1831
转载 一个通用Makefile
本程序的Makefile分为3类:顶层目录的Makefile 顶层目录的Makefile.build 各级子目录的Makefile1.顶层目录的MakefileCROSS_COMPILE = # 交叉编译工具头,如:arm-linux-gnueabihf-AS = $(CROSS_COMPILE)as # 把汇编文件生成目标文件LD = $(CROSS_COMPILE)ld # 链接器,为前面生成的目标代码分配地址空间,将多个目标文件链接成一个库或者一个可执行文件C
2022-01-03 23:29:02 1262
原创 静态环形队列(C语言)
typedef struct //数据内容根据实际可以随意变更{ int a; int b; int c; char str[100];}DataDef#define BUFFER_LEN 20 //环形队列长度static int Read = 0; //读计数static in...
2022-01-03 18:19:26 620
原创 linux下select()函数
1.I/O处理的模型有5种:1>.阻塞I/O模型在这种模型下,若所调用的I/O函数没有完成相关的功能,则会使进程挂起,直到相关数据到达才会返回。如常见的对管道、终端、网络设备进行读写时经常会出现这种情况。2>.非阻塞I/O模型在这种模式下,当请求的I/O操作不能完成时,则不让进程睡眠,而且立即返回。3>.I/O多路转接模型在这种模型下,如果请求的I/O模型阻塞,且它不是真正阻塞I/O,而是让其中的一个函数等待,在此期间,I/O还能进行其他操作;select()、p.
2021-12-31 17:19:16 2827
原创 linux下socket编程
socket编程的基本函数有socket()、bind()、listen()、accept()、send()、sendto()、recv()、recvfrom(),其中根据时客户端还是服务器端,或者根据使用TCP协议还是UDP协议,这些函数的调用流程都有所区别。这里先对每个函数进行说明。socket():该函数用于建立一个套接字,一条通信路线的端点。在建立了socket之后,可对sockaddr或sockaddr_in结构进行初始化,已保存所建立的socket地址信息。bind(...
2021-12-30 18:33:16 1651
原创 Linux下用pthread实现“生产者---消费者”的同步与互斥
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <pthread.h>#include <errno.h>#include <semaphore.h>#include <sys/ipc.h>#include <string.h>#include <sys/types.h>#include <..
2021-12-29 21:20:26 666
原创 Linux进程间通信
1.无名管道它只能用于具有亲缘关系的进程之间的通信(父子进程或兄弟进程之间);它是一个半双工的通信模式,具有固定的读端和写端。管道也可以看成使一种特殊的文件,对于它的读写也可以使用普通的read()、write()等函数。但是它不是普通的文件,并不属于其他任何文件系统,并且只存在于内存中。代码//pipe#include <unistd.h>#include <sys/types.h>#include <sys/wait.h>#include
2021-12-28 16:00:24 916
原创 10个免费学术论文期刊网站
1.ResearchGate2.SCI-Hub3.Libgen4. Zlibrary5. 小木虫6. x-mol7. 虫部落学术搜索8. idata9. 科研通10. 大木虫学术导航...
2021-12-27 23:53:09 6109
原创 linux守护进程
守护进程,也是通常所说的daemon进程,是linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性的执行某些任务或等待处理某些发生的事件。通常在系统引导载入时启动,在系统关闭时终止。同时,守护进程还能完成许多系统任务。由于在linux中,每一个系统与用户交互的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会关闭。但是守护进程却能够突破这种限制,它从被执行开始运转,直到接收到某些信号...
2021-12-27 11:49:39 777
74ls芯片资料大全
2010-11-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人