自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (13)
  • 收藏
  • 关注

原创 解析设备树(DTS)获取属性信息

解析DTS获取属性信息前言节点表示查节点of_find_node_by_name()函数of_find_compatible_node()函数查节点的属性值of_find_property()函数of_property_read_u32()函数of_property_read_u32_array()函数of_property_read_string()函数前言查属性所在的节点查节点的属性值节点表示/include/linux/of.hstruct device_node { cons

2021-11-10 16:10:10 768 1

原创 插件设备树

Device Tree Overlays:"插件"设备树传统设备树批量管理硬件资源,机制僵化"插件"设备树模块化管理硬件资源,灵活定制使用前提内核配置CONFIG_OF_OVERLAY = yCONFIG_OF_CONFIGFS = y挂载ConfigFSmount x /sys/kernel/config -t configfs案例说明设备树:foo.dts / { compatible = "corp,foo"; /* On chip periph

2021-11-04 20:51:25 382 4

原创 基于单片机的modbus从机程序

基于新唐M031的modbus从机程序一 、开发思路我这里开发的平台是新唐M031,它是Cortex-M0的内核、32位单片机。因为要和上位机进行RS485通讯,所以选用了Modbus-RTU来作为通讯协议。我这是用串口接收中断+定时器中断来接收一帧数据,然后modbus从机程序自己手撸。二、 Modbus介绍modbus没什么好介绍的,熟悉下功能码就ok了。上链接 https://www.cnblogs.com/endv/p/8650491.html三、 串口初始化及...

2020-08-15 01:26:53 5037 5

原创 Linux互斥锁

Linux互斥锁信号量与互斥锁的比较信号量互斥锁自旋锁与互斥锁的比较自旋锁互斥锁互斥锁相关API定义互斥锁初始化互斥锁互斥锁加锁尝试获取互斥锁互斥锁解锁信号量与互斥锁的比较是同步还是独占?信号量强调信号机制(同步)生产者–消费者模型获取信号量失败,触发上下文调度互斥锁强调互斥机制独占共享资源获取互斥锁失败,触发上下文调度总结服务于多个线程间的执行的逻辑顺序的选信号量服务于共享资源的选互斥锁自旋锁与互斥锁的比较是休眠还是“忙等待”?自旋锁加锁成本低,

2021-11-10 20:12:21 357

原创 Linux信号量

Linux信号量信号量本质信号量特点信号量相关API定义信号量初始化信号量获取信号量尝试获取信号量释放信号量信号量本质计数器,用来控制对公共资源的访问信号量特点长时期的资源占用获取信号量失败,触发上下文调度当前进程(线程)陷入休眠,系统开销大信号量相关API定义信号量struct semaphore sem;初始化信号量static inline void sema_init(struct semaphore *sem, int val)参数:sem:指定要初始化的信号量

2021-11-10 19:55:26 921

原创 Linux自旋锁

Linux自旋锁原子操作自旋锁存在问题解决方案CAS 函数PAUSE 指令自旋锁原理自旋锁相关API定义自旋锁初始化自旋锁获取自旋锁函数尝试获取自旋锁函数释放自旋锁原子操作简单易用只能作计数操作,保护的东西太少自旋锁主要用于多核处理器短时期的轻量级加锁加锁失败时,原地打转、忙等待避免上下文调度、系统开销较小加锁步骤:查看锁的状态,如果锁是空闲的将锁设置为当前线程持有存在问题在没有 CAS 函数前,多个线程同时执行这 2 个步骤是会出错的。解决方案CAS

2021-11-10 19:17:08 1368

原创 硬件原子操作

硬件原子操作并发的根源并发对程序的不良影响硬件同步原语案例原子整型操作接口原子整型变量ATOMIC_INIT()atomic_set()atomic_read()atomic_add()/atomic_sub()atomic_inc()/atomic_dec()位原子操作函数set_bit()clear_bit()change_bit()并发的根源多线程、多进程调度各种中断并发对程序的不良影响篡改共享数据动作不完整同步、死锁、数据竞争、系统调度开销…硬件同步原语由计算机硬件提供的一

2021-11-10 16:45:52 1450

原创 Linux下构建一个deb软件安装包

Linux下构建一个deb软件安装包了解Linux软件包的组成deb包概念rpm包概念dpkg工具概念常用命令deb包文件结构分析构建一个helloworld的deb包apt命令和apt-get命令了解Linux软件包的组成文件类型保存目录普通程序/usr/binroot权限程序/usr/sbin程序配置文件/etc日志文件/var/log文档文件/usr/share/docLinux软件包源码包优点:开源免费自由裁剪功能修改源代

2021-11-10 15:43:39 451

原创 Git简介和项目资料获取

这里写目录标题Git是什么?Git与GitHub、Gitee安装Git项目资料下载远程仓库克隆仓库仓库更新其他学习资料:Git是什么?版本控制工具Git与GitHub、Gitee本地仓库/远程仓库安装Gitwindows:https://gitforwindows.orgUbuntu:sudo apt install git -y项目资料下载远程仓库GitHub仓库地址:https://github.com/Embdefire/embed_linux_tutorialGitee

2021-11-10 15:25:53 577

原创 linux环境变量

linux环境变量文章目录linux环境变量全局变量VS环境变量Shell 配置文件Shell 执行顺序修改配置文件shell启动方式对变量的影响全局变量VS环境变量直接定义exportShell 配置文件与 Bash Shell 有关的配置文件主要有/etc/profile~/.bash_profile~/.bash_login~/.profile~/.bashrc/etc/bashrc/etc/bash.bashrc/etc/profile.d/*.shShell

2021-11-09 22:44:02 50

原创 Linux系统中查看设备树

Linux系统中查看设备树ls /sys/firmware/devicetree/base或者ls /proc/device-tree

2021-11-03 21:36:42 7951

原创 Ubuntu下完全卸载source insight

Ubuntu下完全卸载Source Insight完全卸载方法参考#kill自己所有进程killall -u itcode#卸载Source Insight并删除用户数据rm -rf ~/Documents/Source\ Insight/rm -rf ~/.wine

2021-10-26 17:31:18 1146

原创 使用PF_PACKET发送自定义type以太网数据包

目标利用PF_PACKET 和SOCK_RAW创建套接字发送一个任意的以太网帧背景以太网是一个链路层协议。大多数网络程序员关注网络栈的传输层及以上,所以不需要直接处理以太网帧,但是某些场景下关注传输层以下也是有必要的。如:1)实现网络协议栈里面没有内置的以太网协议类型2)为测试目的,产生一个畸形或者其它非常规帧使用场景已知发送方和接收方的mac地址,就可以使用这个以太网协议发送接收数据。编程使用PF_PACKET 和SOCK_RAW创建套接字 if((fd = soc

2020-10-17 12:34:02 1834 2

原创 Linux Samba共享配置教程

Linux Samba共享配置教程一、 samba介绍linux与windows共享文件一般的方法就是设置共享文件夹和搭建samba服务器。samba服务器作可以windows和linux交互的媒介,可以让windows用户轻松地在电脑上使用图形界面访问linux文件系统,并可以设置写入权限,实用性极佳。二、 samba安装首先需要安装samba程序,部分Ubuntu镜像已经自带;执行如下命令即可 sudo apt-get install samba sudo apt-get ins

2020-08-07 10:42:52 1565 1

快充UFCS协议标准&测试方法

TTAF 083—2022 移动终端融合快速充电技术规范 移动终端融合快速充电测试方法(T/TAF 092-2022)

2023-09-28

vscode常用插件包Linux C

ubuntu下安装vscode,linux c常用插件包vsix

2021-10-30

ble_mesh文档资料.zip

Core_v5.0.pdf Mesh_v1.0.pdf Mesh Device Properties v1.0.pdf Mesh Profile Bluetooth® Specification v1.0.pdf Mesh_Model_Specification v1.0.pdf

2021-02-02

tinyxml.zip

该资源是tinyxml库源码和自己增加的调用接口。tinyxml2.cpp为库源码,tinyxml_comm.c是自己实现的调用接口,自己想编成库,请自己修改makefile。

2020-12-04

GB2312转UTF-8(C代码)

本资源为GB2312转UTF-8的C语言代码,实现方式为查表的方式,提供了可以调用的接口,里面有makefile,用于别的平台自行修改。

2020-12-04

M031时钟树.zip

本资源是新唐单片机的系统时钟树,时钟控制器为整个芯片生成时钟,包括系统时钟和所有外设时钟。有助于开发者快速阅读查看芯片的时钟来龙去脉。

2020-06-19

mqtt+stm32.zip

此资源为MQTT在STM32中的实现,包含了MQTTClient和MQTTPacket,代码为C语言实现。

2020-03-06

模拟IIC设计与实现.rar

该资源包含了一个WORD文档讲述如何设计模拟IIC,还有模拟IIC的示例代码,另外还有一个PDF讲了锁存器的原理。

2019-06-12

开关电源PCB布局指南中文版.pdf

此PDF专门讲述了开关电源的PCB布局,开关电源PCB的布局一直是一个难点,希望这个文档对用户者有帮助。

2019-06-12

STM8三段式智能充电器测试.zip

该资源是基于stm8的三段式智能充电器的测试代码,开发工具是那个青蛙似的软件。

2019-06-12

PID控制算法的C语言实现(完整版).pdf

在工业应用中 PID 及其衍生算法是应用最广泛的算法之一,是当之无愧的万 能算法,如果能够熟练掌握 PID 算法的设计与实现过程,对于一般的研发人员来 讲,应该是足够应对一般研发问题了,而难能可贵的是,在我所接触的控制算法 当中, PID 控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的 经典。

2019-06-12

DS18B2多IO驱动(带滤波)—STM32.zip

DS18B2用于温度的测量,温度范围为-550-1250,这里包含基于STM32的DS18B2多IO驱动的代码。

2019-06-12

字符串筛选以及数据类型转换算法.c

其中19个函数示例代码,包含字符串筛选,各种数据类型之间的转换,工作之中用的非常之多。。

2019-06-12

基于stm32的交流异步电机控制系统的设计

一种基于 STM32 微控制器的三相异步电机变频调速控制系统的 设计方案。系统采用矢量控制 (VC) 策略和电压空间矢量脉宽调制 (SVPWM) 方法,首先详细阐述了矢量控制的原理、 SVPWM 技术原 理及其调制方法; 接着介绍了系统的硬件设计, 包括主电路的结构设 计,控制核心 STM32 和智能功率模块 (IPM) 的外围电路设计, 反馈信 号采集电路设计以及异步电机发电运行时的馈电逆变电路设计等; 然 后详细给出了系统的软件设计, 阐述了主程序、 中断服务程序及各子 程序的设计思路与矢量控制、 SVPWM 的实现方法

2019-02-26

空空如也

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

TA关注的人

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