自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 函数的同步(synchronous)和异步(asynchronous)调用

在实际应用中,很多函数需要进行长时间的计算、I/O操作或等待其他进程/线程处理结果,而这些操作往往会造成程序的阻塞或耗时较长的等待,影响程序的效率和用户体验。如果使用同步调用方式,调用者必须一直阻塞等待函数返回结果,这种方式会浪费处理器时间,降低程序的效率。而异步调用则可以使得调用者无需阻塞,继续执行其他任务,当函数执行结束后再通过回调函数将结果返回给调用者,提高了程序的运行效率和并发性能。另外,在处理多进程/线程协作中,同步调用往往可控性更强,代码更易于理解和维护。

2023-04-28 13:36:24 570

原创 Parameters(in)、Parameters(out) and Parameters(inout)

参数类型(Parameters)指的是函数参数在调用时所具有的性质,从而对函数的调用方式产生影响。在 C 语言中,存在三种不同类型的函数参数:Parameters(in)、Parameters(out) 和 Parameters(inout)Parameters(in) 表示将参数作为输入传递给函数。这意味着函数只能读取该参数的值,但不能修改它的原始值。使用 Parameters(in) 的参数通常是用来告诉函数操作的数据或状态,以便函数可以根据这些参数执行一些操作并返回结果,而不会改变这些参数的原始值。

2023-04-27 14:12:38 992

原创 reentrant(可重入函数)和Non-reentrant(不可重入函数)

可重入函数是一种能够在多任务和多线程环境下安全的执行的函数,因为它们不会使用任何静态变量或全局状态,每次调用时都可以返回相同的结果,并且可以在不同的线程中同时调用。可重入函数的设计需要考虑同步问题,目的是避免数据竞争。不可重入函数则是指在多任务和多线程环境下可能会产生问题的函数,因为它们使用了静态变量、全局状态以及其他非线程安全的机制来存储状态。如果在多个线程之间同时调用此类函数,则可能导致无法预测的行为或数据竞争问题,除非采取适当的同步措施来防止这种问题。

2023-04-27 10:44:58 780

原创 将博客搬至CSDN

hi,文章搬家。

2023-04-27 10:26:08 78

原创 ARM Cortex-R52 通用中断控制器GIC:Generic Interrupt Controller(一)

本章描述了 Cortex-R52 处理器实现的通用中断控制器 (GIC)。

2023-04-26 09:59:27 1520

原创 AURIX TC39X系统架构

AURIX™ TC3xx系列MCU是英飞凌新一代广泛应用于汽车各个应用领域的MCU,支持功能安全、信息安全、在线升级(OTA)等。本文首先介绍AURIX™ TC3xx系列MCU的系统架构优势以及给客户带来的价值,接着简要讲解Flash特性,Tricore™内核特性以及一些外设模块的重点特性,最后简单介绍AURIX™在汽车电子应用中的优势。

2023-03-24 17:11:04 945

原创 结构体指针加宏定义访问结构体变量

C语言技术交流

2022-09-05 10:26:14 589

原创 面试C语言-经典题目-求二进制中1的个数

int function(x) { int flag = 0; while(x) { x = x&(x-1); flag ++; } return flag ;}

2021-12-15 17:09:18 673 2

原创 sklearn SVM的应用-山鸢花分类python代码

'''导入sklearn自带数据集:山鸢鸟数据集数据集包括 150 条鸢尾花的四个特征 (萼片长/宽和花瓣长/宽) 和三个类别。是从 csv 文件读取的,本工程从 Sklearn 里面的 datasets 模块中引入,代码如下:'''from sklearn.datasets import load_irisiris = load_iris()import numpy as npimport matplotlib.pyplot as plt'''导入需要的包机器学习中 from sk

2021-11-13 10:52:44 991

原创 U-boot 在 mini2440-S3C2440 上的移植(4):U-boot第二阶段代码:修改初始化代码

这一阶段从lib_arm/board.c函数中的start_armboot函数开始,主要进行以下工作:1.初始化硬件设备:这部分是移植U-BOOT的主要工作,包括设置 系统时钟,改变系统时钟,可以参考代码board/tekkamanninja/mini2440/mini2440.c ,可以将它复制粘贴成跟我们自己开发板相匹配的.c文件,串口初始化在cpu/arm920t/…/serial.c代码实现;2.检测系统内存映射:对于特定的开发板,例如mini2440,内存分布是明确的,可以直接在board

2021-08-08 17:43:34 175 1

原创 U-boot 在 mini2440-S3C2440 上的移植(3)-第一阶段:探索启动代码

1.本文以mini2440开发板为例:u-boot属于两阶段的Bootloader,第一阶段文件为CPU/arm920t/start.S和board/mini2440/lowlevel_init.S,前者是平台相关的,后者是开发板相关的;U-boot第一阶段代码:1.硬件设备初始化该部分完成:将CPU的工作模式设置为管理模式;关闭WATCHDOG;设置FCLK;HCLK;PCLK的比例,关闭MMU;CACHE参考代码:cpu/arm920t/start.S2.为加载Bootloader的第二阶

2021-08-08 16:47:59 158

原创 U-boot 在 mini2440-S3C2440 上的移植(1)-开发环境搭建-交叉编译工具链的安装

编译U-boot给mini2440时,要编译出能在ARM平台上使用的可执行文件-bin,首先要在ubuntu 中安装交叉编译工具链,因为我使用的是友善之臂的开发板,所以我使用的已经制作好的工具链,当然也可以自己制作工具链:如基于GCC和glibc制作工具链,可以使用cross tools编译;我使用的工具链的版本是arm-linux-gcc-4.3.3版本,下载地址:1.在pc端下载好以后,将压缩包用xftp传输到Ubuntu;当然也可以用其他软件上传;上传后把它放在根目录下的/usr/local文件夹

2021-08-08 10:32:21 237

原创 U-boot 在 mini2440-S3C2440 上的移植(2)

1.本文主要讲解U-boot 在 mini2440-S3C2440 上的移植,用到的版本为U-boot-2009.11_tekkaman-master,下载地址:

2021-08-07 23:42:56 274

原创 C语言-联合体(共用体)union

设有以下定义union d{ int d1; float d2; }d;则下面叙述中正确的是( )正确答案: A B变量d与各成员的地址相同d.d1和d.d2具有相同的地址若给d.d2赋10后,d.d1中的值是10若给d.d1赋10后,d.d2中的值是10解析:这题思路应该是:共用体中只能存在一个值,如果给某个值赋值后,另一个值就不存在;共用一个地址;...

2021-07-29 20:31:19 766

原创 基于EEG的睡眠分期算法记录3-使用决策树多类支持向量机的自动睡眠阶段分类

学习机和睡眠脑:使用决策树多类支持向量机的自动睡眠阶段分类Learning machines and sleeping brains: Automatic sleep stageclassification using decision-tree multi-class support vector machines

2021-07-27 16:49:18 1184

原创 C语言学习-指针的应用2

为什么要使用指针2:指针变量作为函数参数,可以将一个变量的地址传送到另一个函数中;例如实现以下函数:对输入的两个整数按大小输出(用函数的方法处理)#include <stdio.h>int main(){ void swap(int *p1, int *p2); int a, b; int *n1, *n2; scanf_s("%d,%d", &a, &b); n1 = &a; n2 = &b; if (a < b) swap(

2021-07-22 21:08:10 139 2

原创 C语言学习-2.指针的应用

1.void main(){ int a[2] = {0,10} ; int *p = a; // 指针 int b = &a[0]; // 引用 a1=p++; // p指向a后面的内存,a 指向a[0],所以p++后,p 指向a[1] a2=b++; // 相当于a[0]++;b只是a[0]的一个别名,和a[0]一样使用 printf("%d,%d",a1,a2);}指针自

2021-07-22 16:29:22 123 1

原创 C语言-1.初识指针与指针变量

内存=“酒店”内存给内存中的字节分配的空间=地址=“房间号”地址中存放的数据=变量/常量=“旅客”可以说地址指向变量单元;例如1110房间住着小明,则1110为地址;小明为存放在该地址的变量;1110指向小明;因此将地址形象化的称为指针;此处一定要搞清楚存储单元的地址和存储单元的内容两个概念,编译器在编译后,对变量的存取都是通过变量的地址进行的,例如scanf(“%d,&i”)是把键盘输入的值送到2000为开始的存储单元中,例如接着a=i;的语句,则是通过访问i所在的地址,将地址中的值送到

2021-07-22 16:15:39 255

原创 ESP8266串口WiFi模块基本使用方法和配置教程

前言:ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网通信,实现联网功能。由于本人一直从事医学信息处理与医学物联网设备研发,硬件联网一直以来都是比较麻烦的事情,而通过使用 ESP8266 这款WiFi模块,仅需要通过串口使用AT指令控制,就能满足大部分的网络功能需求。本文通过简单介绍及应用实例,让刚接触WiFi模块的读者了解模块的大致使用方法。ESP8

2021-07-21 21:56:24 56530 16

原创 基于EEG信号的睡眠分期算法记录2-一种新的全自动随机森林睡眠分期算法(英)

快速动眼期(REM)睡眠行为障碍被认为是α-突触核蛋白病的前驱期。其诊断需要仔细检测快速眼动睡眠,金标准人工睡眠分期不一致且昂贵。这项工作提出了一种新的自动睡眠分期模型,仅使用脑电图(EEG)和电描记术(EOG)记录来为这种应用增加强大的自动化。公开可用的ISRUC-Sleep数据库用于优化所提出模型的设计。该模型在由100名有不同睡眠障碍证据的受试者组成的亚组中进行训练和测试,多导睡眠图数据由两名专家手工评分。我们将EOG和脑电图记录划分为以3s为步长的重叠运动33-s时期,并为每个时期计算了几个时域和频

2021-07-19 15:48:31 1659 2

原创 基于EEG信号的文献记录01(0719)-特征选择和分类算法在基于脑电信号的睡眠阶段分类中的比较研究

1.特征选择和分类算法在基于脑电信号的睡眠阶段分类中的比较研究(英文)特征提取:在特征提取阶段识别了4种不同类别的特征(时间、非线性、基于频率和熵)。总共使用了21种特征算法;时间范畴10个,非线性范畴5个,频率范畴2个,熵范畴4个。从21个特征算法中获得了41个特征值。时域:过零次数;Hjorth 系数;统计特征包括:非线性特征5个:Petrosian fractal dimension (PFD)Mean teager energy (MTE) MTEMean energy (ME)Mean

2021-07-19 11:52:14 902

原创 脑电采集过程中电极的放置

脑电采集过程中电极的放置在临床检测中,电极的放置方法一般按照脑电学会国际联合会规定的 10-20 标准系统:前后以鼻根和枕骨隆突为基准,左右以外耳孔为基准,头顶中心点为起始点,横向与纵向分别延长到对应基准点,与每个基准点的距离分别为全长的两个 20%和一个 10%,即确定了包括参考电位在内的 21 个准确电极位置:...

2021-03-29 15:45:52 2937

原创 树莓派安装中文输入法

树莓派安装中文输入法终端执行命令:sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin

2021-03-25 11:36:33 312

原创 树莓派3b+串口/TTL采集噪声传感器PG-760/ZY-C python程序

需要准备的东西1.树莓派3b+;2.噪声传感器,我用的是串口/TTL款的,5V供电;硬件接线## 实物接线图树莓派串口配置此节参考添加链接描述(1)修改cmdline.txt文件编辑cmdline.txt文件$ sudo nano /boot/cmdline.txt原来cmdline.txt文件的内容如下:console=serial0,115200 console=tty1 root=PARTUUID=a05c3c8f-02 rootfstype=ext4 elevator=dea

2021-03-24 12:33:25 1241 4

原创 一文讲解ARM、STM32之间的关系以及STM单片机介绍

一、什么是ARMARM:(Advanced RISC Machines)高级精简指令集微处理器。它有几层含义:1.ARM是一个公司,英国公司。只出售芯片的技术授权。2.ARM是全球领先的32位嵌入式RISC芯片内核设计公司,RISC–精简指令集计算机,特点是所有的指令的格式都是一样的,所有指令的指令周期也是一样的;ARM本身并不生产和销售芯片,全球顶尖的芯片制造公司,例如Actel 、 TI、ST、Fujitsu、NXP等均购买ARM的内核,结合各自的技术优势进行生产的销售。3.ARM是一个内核

2020-11-20 11:42:15 9313 1

原创 一文了解什么是嵌入式?

1.嵌入式的定义如何理解嵌入式?我们做的哪些工作可以理解为嵌入式的工作?嵌入式即嵌入式系统,IEEE(美国电气和电子工程师协会)对其定义是用于控制、监视或者辅助操作机器和设备的装置,是一种专用的计算机系统;国内普遍认同的嵌入式系统定义是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统;从应用对象上加以定义来说,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。嵌入式系统作为装置或设备的一部分,它是一个控制程序存储在ROM中的嵌

2020-11-20 10:15:07 35861 4

原创 树莓派开机自启动运行PY脚本的方法

树莓派开机自启动脚本最近在实验箱项目中需要用到树莓派开机自启动程序,网上也看到很多前辈的经验,学到很多。现在将自己实践的结果作一分享,希望跟大家一同学习!如有侵权,请回复。在/home/pi/.config下创建一个文件夹,名称为autostart,并在该文件夹下创建一个xxx.desktop文件,文件内容如下Name、表示启动项的名称,可自定;但一定要对应;最后重启树莓派。sudo reboot...

2020-11-16 13:09:59 413

原创 PC机远程操作树莓派

PC机远程操作树莓派(一)树莓派远程控制图一1.先将树莓派如上图一所示连接好(需要鼠标,键盘的外接设备,5v电源线,HDMI线,SD卡)树莓派界面如图二。图二把树莓派和电脑处在一个局域网下(连接上同一个手机热点)打开树莓派Terminal控制界面。(在树莓派的左上角黑色的东西)输入ifconfig,查看局域网IP地址,如图三所示,白色部分就是IP地址,要记录IP地址。图三点击树莓派左上角的树莓标志,首选项-Raspberry pi Configuration-Interfaces

2020-11-16 11:15:14 904

原创 树莓派ZERO电源方案

本文章针对树莓派zero在实际项目开发过程中,如果不能接USB数据线的情况下;电源管理方案;

2020-11-15 12:00:52 2066

原创 树莓派和HC-05蓝牙连接以及通过串口写入(Write)和读入(Read)数据

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结树莓派和HC-05蓝牙通过串口收发数据前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。

2020-10-24 22:57:53 4370

U-boot-2009.11_tekkaman-master(1).zip

U-boot-2009.11_tekkaman-master(1).zip

2021-08-07

空空如也

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

TA关注的人

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