自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ESP32学习(三)——FreeRTOS学习(2)

直达任务通知是直接发送至任务的事件,而不是通过中间对象(队列,事件组或信号量)间接发送至任务的事件。向任务发送“直达任务通知”会将目标任务通知设置为挂起状态(此挂起不是指挂起任务)。BaseType_t xTaskNotify(//用于将任务通知直接发送到RTOS任务并可能取消该任务的阻塞状态。TaskHandle_t xTaskToNotify,//被通知RTOS任务句柄。BaseType_t xTaskNotifyWait(//等待接收任务通知。ESP定时器(23)5.删除任务避免删除另一个核的任务;

2024-12-07 21:44:59 285

原创 ESP32学习(三)——FreeRTOS学习(1)

临界资源X,正在被C占用,二值信号量下,任务A无法读取X,A进入阻塞态,C继续执行,但B任务优先等级高于C,此时B任务会抢占系统核心,继续执行,等B执行完毕,A还在阻塞态,等待C释放临界资源,C执行完成,释放资源后,才轮到A继续执行,从结果看,虽然任务A的优先等级大于B和C,但是实际上由于任务C对临界资源X的占,任务A的执行优先级却小于B,C。//每次基于当前系统节拍数+100进行延时阻塞。TaskHandle_t *constpvCreatTask,//回传的任务句柄,作为挂起,删除,恢复使用。

2024-12-07 19:41:54 655

原创 ESP32学习(二)——启动流程

该程序出厂就固化在ROM中,不可修改,通过检查IO0脚,选择启动模式;(1)硬件外设和基本C语言运行环境的初始化;(1)加载二级引导程序到RAM运行;(3)执行app_main()函数;(1)从x8000处读取分区表;(2)freertos初始化;bootloader程序。(3)加载应用程序;

2024-12-06 10:03:55 231

原创 ESP32学习(一)—— 程序的存储结构

ESP32 IDF将内部SRAM0(SRAM分为三组:SRAM0,SRAM1,SRAM2)的部分区域(SRAM0和SRAM1)分配为指令RAM中断处理程序,一般放在指令RAM中;static 静态变量 (.data段),或初始化为0(.bss段,一般是数值为0的全局变量)通过RTC_NOINIT_ATTR属性宏存放在该存储器中的数据在深度睡眠模式中醒来数值不变;如果一个函数没有被显示的声明放在IRAM或RTC存储器中,则它会存储在flash中。深度睡眠模式醒来时必须要执行的代码存储在RTC快速存储器中;

2024-12-06 09:53:25 355

原创 蓝牙基础知识

蓝牙采用分散式网络结构以及快调频和短包技术,支持点对点及点多对通信,工作在2.4GHz ISM(及工业,科学,医学)频段。

2024-12-03 18:27:01 825

原创 WIFI理论知识

(3)BAS(后台认证服务器):某些情况下(如企业级应用)Authenticator并不真正处理身份验证,它仅仅将验证请求发给后台认证服务器去处理;(1)Authenticator(验证者):无线网络中的AP,响应认证请求的实体;(2)Supplicant(验证申请者):无线网络中的STA,发起验证请求的实体;Wi-Fi是一个认证名称,认证用于测试无线网络设备是否符合IEEE-802.11系列协议的规范;):负责AP间的相互通信,掌握移动式STA的行踪,将MAC帧数据(Frame)转送到目的地;

2024-12-02 17:40:29 918

原创 捋清楚MCU上内存的分类和关系

按块读取擦写,一块一般为512Byte,一般用于存储系统固件和用户配置信息,NAND Flash不支持XIP(eXecute In Place,本地执行)功能。,NORFlash数据线和地址线分开,可以像RAM实现随机寻址,读取任意一个字节,可以节省SRAM的容量,但是擦除需要按块擦除;数据保留时间短,需要一直进行电路刷新电路才能保存数据,SRAM>速率>ROM,但是比SRAM便宜很多;传输速率很快,只要一直上电就可以保持数据,无需刷新电路,集成度低,贵;分析:是否NORFlash能够完全替代SRAM?

2024-11-25 15:20:19 1037

原创 关于STM32存储、内存分析(为何从0x8000起始)

(1)串口烧录:需要从STM公司提前烧录在系统存储器上的Bootloader进行引导进入烧录模式,此时系统的必须要将0x0000 0000重映射(再次映射)到系统存储器之前被映射的0x1fff ffff-0x1fff 7a0f存储位置。所以我们按原先规划的主Flash空间起始地址0x0800 0000进行下载,下载完成后,重新设置启动模式,从主Flash启动,将0x0000 0000重映射(再次映射)到原先定义的0x0800 0000上就可以正常从主Flash上启动了;关于图上的几个问题(图从左往右看)

2024-11-25 11:41:52 598

原创 ESP32 开发IDF开发(一)工程目录结构分析

3.ESP-IDF中包含了大量的组件,用户工程只需在CMakeLists.txt中使用REQUIRES或PRIV_REQUIRES指明依赖关系,编译系统会自动找到组件进行编译链接;3.默认分区不能满足需求,可在目录下添加自定义分区表partitions.csv,并在menuconfig中选择自定义的分区表;1.工程所有组件的配置文件,编译系统自动生成,可以通过idf.py menuconfig进行修改并重新生成;1.main可以视为一个特殊的组件,默认依赖所有搜索路径中的组件;-main【入口程序】

2024-11-22 15:16:35 207

原创 linux 串口通信-多进程同时收发

linux系统下串口读写DEMO 多线程

2022-12-13 14:48:57 1281

原创 build root 编译报错you should not run configure as root(必解决)

正在上传…重新上传取消

2022-04-13 19:46:33 4233

原创 Linux驱动学习-设备树-20220411

设备树的作用是代替device.c来描述硬件。paltform的匹配方式不变,而且使用设备树,对硬件的改动就不需要去改动device.c重新编译到内核中,而是可以直接通过bootloader传递给内核,所以设备树也是platform平台设备驱动的一部分,是platform平台设备驱动框架的一种优化编写形式。1. dts ,dtsi ,dtc , dtbdts:设备树文件;dtsi:通用设备树文件;dtc:设备树编译器dtb:设备树编译器编译设备树文件最终生成二进制文件2.新增dt

2022-04-11 23:53:12 1211

原创 Linux驱动学习-平台设备驱动probe函数-20220410

1.最简单的杂项设备/** @Descripttion: 最简单的杂项设备驱动* @version:* @Author: topeet*/#include <linux/init.h>#include <linux/module.h>#include <linux/miscdevice.h>#include <linux/fs.h>struct file_operations misc_fops={ .owner = THIS

2022-04-10 18:13:22 3887

原创 关于结构体内嵌结构体的赋值方法

以下三种内嵌结构体的赋值的区别:A struct device_driver beep_device_driver = { .name = "beep_test", .owner = THIS_MODULE, }; struct platform_driver beep_platform_driver ={ .probe = beep_probe, .remove = beep_remove, .driver...

2022-04-09 15:13:12 3677 1

原创 Linux驱动学习-platform平台设备注册(2)-20220408

将驱动模块复制到开发板nfs挂载目录下,insmod beep_device.ko进行安装报错表示:加载的树外模块污染了内核。从这段描述可以猜到,这是我们没有把此驱动模块加入到Kconfig树导致的,即make menuconfig的配置选项中没有此驱动。此时这个驱动模块仍能正确加载和使用。如果我们只是学习怎么写驱动,不用管他就行;如果我们是正式地写驱动,那么把驱动信息加入到Kconfig树中是必须的,这样我们可以通过配置内核来决定哪些加载驱动,系统也不会再报loading out-of-tree

2022-04-08 23:37:35 642

原创 Linux驱动学习-platform平台设备注册(1)-20220407

重要的头文件:<linux/init.h> #初始化头文件<linux/module.h> #模块注册注销头文件<linux/patform_device.h> #平台文件注册注销头文件1.平台总线注册一个devicedevice.c里面写的是硬件资源:寄存器地址,终端号,时钟等硬件资源;struct platform_device 结构体:{const char *name ;#平台总线进行匹配的字符串,/sys/bus/...下生成对应文件

2022-04-07 23:12:28 841

原创 Linux驱动学习-编译-20220406

在源码目录下执行make指令在此之前需要做一些准备:1.安装make工具和一些依赖2.交叉编译器配置export CROSS_COMPILE=/work/rk3399/rk3399_linux_sdk_v2.0/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-#编译器路径配置export ARCH=arm64#编译器平台选

2022-04-06 22:14:38 635

原创 Linux驱动学习-vim工具配置-20220405

1.vim配置文件:【~/.vimrc】没有就新建一个进行配置2.vim插件管理器:【vimplug】安装地址:https://github.com/junegunn/vim-plug下载此项放置到~/.vim/autoload/目录下,没有这个文件夹就新建一个放进去将下列加入~/vimrc配置文件中call plug *****begin() 插件启用 Plug 'Valloric/YouCo...

2022-04-05 18:59:37 890

原创 Linux驱动学习-开发板nfs挂载-20220404

(1)VMware安装Ubuntu20.4虚拟机,配置网络选项挂载开发板NFS虚拟机编制配置后,虚拟机网络图标消失百度解决方案:如下操作:sudo service network-manager stopsudo rm /var/lib/NetworkManager/NetworkManager.statesudo service network-manager start (实际到这一步就已经成功显示网络图标)sudo gedit /etc/NetworkManager/Net

2022-04-04 23:04:47 1630 1

原创 path.sh_v1.0

#!/bin/bash#OUT_PATH= "/home/xs/桌面/path.txt"SCODE_PATH="/work/K7S/S/"FILE_NAME="test.txt"CODE1_START="start"CODE1_END="end"grep $CODE1_START $FILE_NAME |grep $CODE1_END | tee /home/xs/桌面/path.txtchmod 777 /home/xs/桌面/path.txtOUT_PATH="/home/xs/桌面/p

2022-02-10 23:29:35 570

NordicSemiconductor.nRF_DeviceFamilyPack.8.15.0.pack

NordicSemiconductor.nRF_DeviceFamilyPack.8.15.0.pack

2022-02-26

空空如也

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

TA关注的人

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