原子

volatile关键字和CAS的原子性操作

volatile 关键字 volatile 是 Java 中的关键字,用于修饰变量。它的作用是确保对被修饰变量的读写操作具有可见性和顺序性。 可见性:当一个线程修改了 volatile 变量的值,其他线程可以立即看到最新的值。这是因为 volatile 变量在修改时会强制将最新的值刷新到主内存中,并 ......
原子 volatile 关键字 关键 CAS

嵌入式linux连接虚拟机乌班图 -- 正点原子嵌入式linux学习

一、运行环境 1、硬件准备 主机:win10 虚拟机:ubuntu 22.04.3 LTS linux开发板: imx6u 2、硬件连接方式 3、虚拟机配置桥接网卡 1、打开虚拟机设置 2、点击设置 3、选择添加 4、添加网卡 5、选择桥接模式 6、打开编辑 7、 打开虚拟网络编辑器 8、选择管理员 ......
嵌入式 linux 原子

《C++并发编程实战》读书笔记(4):原子变量

## 1、标准原子类型 标准原子类型的定义位于头文件``内。原子操作的关键用途是取代需要互斥的同步方式,但假设原子操作本身也在内部使用了互斥,就很可能无法达到期望的性能提升。有三种方法来判断一个原子类型是否属于无锁数据结构: - 所有标准原子类型(`std::atomic_flag`除外,因为它必须 ......
原子 变量 实战 笔记

原子类自增自减(一个有周期的固定范围值的 AtomicInteger)

public class CircularAtomicInteger { private final int minValue; private final int maxValue; private final AtomicInteger atomicInteger; public Circula ......
AtomicInteger 原子 周期 范围

软件开发原子化 技术转型加速器

在万物互联的时代,人均持有设备量不断攀升,设备和场景的多样性,每个设备都需要独立开发一个应用,先安装后使用、不同设备的能力不兼容等传统应用的短板逐步暴露出来。在此背景下,应用提供方和用户都迫切需要一种新的服务提供方式,使应用开发更简单、服务的获取和使用更便捷,原子化服务也就此诞生。 原子服务与微服务 ......
加速器 原子 软件开发 技术 软件

虚拟机VMware与乌班图的安装 -- 正点原子嵌入式Linux学习

一、准备工作 1、虚拟机VMware的下载 官网下载地址 :Download VMware Workstation Pro 2、linux乌班图的下载 官网下载地址:下载Ubuntu桌面系统 | Ubuntu 二、虚拟机VMware的安装过程 1、点击第一步下载好的虚拟机安装文件,选择自定义,后点击 ......
原子 嵌入式 VMware Linux

tailwindcss -原子化 CSS 框架

原子化 CSS 框架 我记得很久之前有时候为了少写些css,我们通常会有如下的样板代码 .block { display: block; } .flex { display:flex } .flex-center { align-items: center; justify-content: cen ......
原子 tailwindcss 框架 CSS

cmake学习方法+CHI独占+ctags编写+C/C++语言原子的序+单核比多核快的C代码

# cmake学习方法 主要是cmake这个东西好像有点抽象,而我想要的是完完全全的控制,虽然是花里胡哨的; 但是在高手看来,这些东西有点过家家,而不是真正意义上的技术,甚至经常被怼,净是花拳绣腿,不容易阅读,控制效果不好,有时候还有语法错误云云。 因此我还是用的Makefile,但是想必cmake ......
学习方法 原子 语言 代码 方法

java原子类AtomicStampedReference

一、什么是CASCAS,compare and swap的缩写,中文翻译成比较并交换。CAS 操作包含三个操作数,内存位置(V)、预期原值(A)和新值(B)。 如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值 。否则,处理器不做任何操作。二、案例public static in ......
AtomicStampedReference 原子 java

Java中怎么进行原子操作?

在 Java 中进行原子操作,特别是替换某个属性,你可以使用 `AtomicReference` 类来实现。`AtomicReference` 可以保证对对象引用的原子更新操作。以下是一个示例,展示如何使用 `AtomicReference` 来进行原子替换操作: ``` javaCopy code ......
原子 Java

并发编程 --- CAS原子操作

## 介绍 **CAS**(Compare And Swap) 是一种无锁算法的实现手段,中文名称为比较并交换。它由 CPU 的原子指令实现,可以在多线程环境下实现无锁的数据结构。 ### 原理 **CAS** 的原理是:它会先比较内存中的某个值是否和预期值相同,如果相同则更新这个值,否则不做任何操 ......
原子 CAS

《CUDA编程:基础与实践》读书笔记(3):同步、协作组、原子函数

## 1. 单指令多线程模式 从硬件上看,一个GPU被分为若干个SM。线程块在执行时将被分配到还没完全占满的SM中,一个线程块不会被分配到不同的SM中,一个SM可以有一个或多个线程块。不同线程块之间可以并发或顺序地执行。当某些线程块完成计算任务后,对应的SM会部分或完全地空闲,然后会有新的线程块被分 ......
协作组 原子 函数 基础 笔记

正点原子 Linux C ——信号的产生和处理

信号的产生: 方式1: Shell 命令 kill 命令,Ctrl+C 或者 Ctrl+\ 方式2:使用系统调用 kill() #include <sys/types.h> #include <signal.h> /** @pid:要发送的进程号 @signum:参数signum指定需要发送的信号编 ......
原子 信号 Linux

STM32CUBEIDE SD卡+FATFS正点原子战舰开发板

配置SD卡 配置SD卡时候注意四线通讯还是一线通讯 正点原子战舰选四线会卡死所以选一线 频率要在0到25Mhz之间 /* USER CODE BEGIN Header */ /** *********************************************************** ......
战舰 原子 CUBEIDE FATFS STM

正点原子ARM裸机开发003----汇编LED驱动实验1-原理分析

一、汇编LED原理分析 为什么要学习Coretex-A汇编? 需要用汇编初始化一些SOC外设 使用汇编初始化DDR,IMX6U不需要 设置sp指针,一般指向DDR,设置好C语言运行环境 ALPHA开发板LED灯硬件原理分析: STM32 IO初始化流程: 使能GPIO时钟 设置IO复用,将其复用为G ......
裸机 原子 原理 ARM 003

正点原子ARM裸机开发002---VScode软件安装与使用

一、下载安装VScode Windows:直接拖拽软件文件夹中的安装包进行安装 Ubuntu:用filezilla传输到Ubuntu下 ~/linux/tool文件夹中 使用以下命令进行安装: sudo dpkg -i code_1.32.3-1552606978_admin64.deb 安装完成以 ......
裸机 原子 VScode 软件 ARM

正点原子ARM裸机开发001---开发环境的搭建

一、Ubuntu与Windows的文件互传 直接通过复制粘贴,但仅限于在虚拟机上 使用FTP服务进行互传: 开启Ubuntu下的FPT服务 打开Ubuntu终端窗口,输入以下命令: sudo apt-get install vsftpd 等待安装完成后,输入以下命令 sudo vi /etc/vsf ......
裸机 原子 环境 ARM 001

清除 Electron (原子壳)中的缓存数据

最佳答案 Electron 将其缓存存储在以下文件夹中: window :C:\Users\<user>\AppData\Roaming\<yourAppName>\Cache Linux:/home/<user>/.config/<yourAppName>/Cache 操作系统:/Users/<u ......
缓存 原子 Electron 数据

正点原子Ubuntu入门016---shell脚本条件判断、函数和循环

一、shell脚本的条件判断 虽然可以通过&&和||来实现简单的条件判断,但是稍微复杂的就不行了 shell脚本呢提供了 if then 条件判断语句,写法: if 条件判断;then //判断条件成立要做的事情 fi if then else 语法 if 条件判断;then //判断条件成立要做的 ......
原子 脚本 函数 条件 Ubuntu

正点原子Ubuntu入门015---shell脚本入门

一、什么是shell脚本 shell脚本类似于Windows的批处理文件,shell脚本就是将连续执行的命令写成一个文件 shell脚本提供数组、循环、条件判断功能。shell脚本一般是Linux运维或者系统管理员要掌握的,作为嵌入式开发人员,只需要掌握基本的命令即可 二、shell脚本的写法 sh ......
原子 脚本 Ubuntu shell 015

正点原子Ubuntu入门014---Makefile基本语法

一、Makefile规则格式 目标……: 依赖文件集合 (Tab键)命令1 (Tab键)命令2 (Tab键)命令3 …… 先判断依赖文件是否存在,存在才依次运行命令 main: main.o input.o calcu.o gcc -o main main.o input.o calcu.o mai ......
原子 语法 Makefile Ubuntu 014

正点原子Ubuntu入门013---make工具和makefile工具的引入

一、make工具和Makefile文件的引入 当源码文件较多时,就不适通过直接输入 gcc 命令来编译,这时候就需要一个自动化的编译工具 make:一般说GNU Make ,是一个软件,将源代码文件编译为可执行的二进制文件,make工具主要用于完成自动化编译。make工具编译的时候需要Makefil ......
工具 原子 makefile Ubuntu make

正点原子Ubuntu入门012---Linux C编程

一、编写C语言程序 Ubuntu中编写和编译是分开的,一般使用vim编辑器编写程序,或者使用vscode编写;使用gcc进行编译 设置vim编辑器,一个Tab=4字节 使用vi打开文件/etc/vim/vimrc,在此文件最后输入以下代码 set ts=4 设置vim编辑器,显示行号 测试案例: 1 ......
原子 Ubuntu Linux 012

正点原子Ubuntu入门011---vim编辑器

一、vim编辑器 安装vim编辑器 sudo apt-get install vim 二、vim编辑器的三种工作模式 vi xxx 使用vi编辑器打开文件 一般模式(指令模式):使用vi打开一个文件以后自动进入到此模式 编辑模式:一般模式中无法编辑文件,要编辑输入文件就要进入编辑模式,按下 “i、I ......
编辑器 原子 Ubuntu 011 vim

正点原子Ubuntu入门010---Linux链接文件

一、Linux连接文件 Linux下有两种连接文件:符号连接(软连接)和硬连接; 符号连接类似Windows下的快捷方式。 硬连接通过文件系统的 inode 连接来产生新文件名,而不是产生新文件 inode:记录文件属性,一个文件一个inode,inode相当于文件ID,查找文件的时候要先找到ino ......
原子 链接 文件 Ubuntu Linux

正点原子Ubuntu入门009---Ubuntu文件权限管理

一、Ubuntu/Linux文件权限 文件权限是指不同用户或用户组对不同文件所拥有的权限,文件权限分为三种: r:可读 w:可写 x:可执行 -rw-r--r--为一组文件权限 其中第一位代表文件类型,后面9位分为三组,分别对应拥有者权限、拥有者所在组权限、其他用户权限 文件类型: 普通文件 “-” ......
Ubuntu 原子 权限 文件 009

正点原子Ubuntu入门008---Ubuntu用户和组

一、Linux用户 一般情况下,Linux有三种用户: 初次登陆的用户 root用户(UID=0) 普通用户 权限:root用户>初始用户>普通用户(其中初始用户可以创建普通用户) Linux用户记录在/etc/passwd文件内 Linux用户密码记录在/etc/shadow文件内,且以加密方式存 ......
Ubuntu 原子 用户 008

正点原子 第六十一章 Linux I2C驱动实验 编程感受

正点原子官方文档的代码结构太乱,我于是这样做了。 我将主要的程序分2部分: 第一部分:my_ap3216c.c 第二部分:my_ap3216c_base.c 第一部分放 Linux 驱动框架,比如 fops 函数, platform 框架这些。 第二部分放 ap3216c 底层驱动,包括向ap321 ......
原子 Linux I2C I2 2C

原子计算器Atom4 2024版发布下载

可以计算2体弹性碰撞后的速度、球对通过球心的转动轴的转动惯量,球对通过球的切线为转动轴的转动惯量,球的质量,球的半径等的相互计算。 It is possible to calculate the speed after the two body Elastic collision, the Mome... ......
原子 计算器 Atom4 Atom 2024

正点原子第五十八章 Linux input子系统实验 文档之外(没提到的部分)

使用 input 子系统,不需要分配设备号、注册设备、创建类等等工作。 也就是不需要以下的代码。 //1. 由系统分配设备号 if(Key_Struct.major != 0) { Key_Struct.devid= MKDEV(Key_Struct.major, 0); register_chrd ......
子系统 原子 文档 部分 Linux