草庐IT

正点原子

全部标签

开放原子校源行(北理工站)成功举办,多举措赋能开源人才建设,助力开源生态繁荣发展

“开放原子校源行”公益项目由开放原子开源基金会与腾讯公司共同出资设立发起。双方携手通过建立高校开源社团、普及开源文化、研发开源课程体系等方式探索产教融合新路径。为高校开发者提供更大的实践舞台,培养更多的开源综合型人才,拓展开源贡献新领域,推动开源科研成果高效转化。1月6日,由开放原子开源基金会主办,北京理工大学承办,深圳市腾讯计算机系统有限公司提供战略合作支持的开放原子校源行(北理工站)活动在北京理工大学成功举办。工业和信息化部信息技术发展司、人事教育司及人才交流中心相关领导,北京市经济和信息化局总工程师仝海威,开放原子开源基金会理事长孙文龙、秘书长冯冠霖,北京理工大学党委常委、副校长王博参加

【正点原子STM32连载】第十三章 串口通信实验 摘自【正点原子】APM32E103最小系统板使用指南

1)实验平台:正点原子APM32E103最小系统板2)平台购买地址:https://detail.tmall.com/item.htm?id=6092947574203)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/xiaoxitongban第十三章串口通信实验本章将介绍使用串口进行数据的收发操作,具体实现APM32E103与上位机软件的数据通信,APM32E103将接受自上位机软件的数据原原本本地发送回给上位机软件。通过本章的学习,读者将学习到USART和GPIO引脚复用的使用。本章分为如下几个小节:13.1硬件设计13.2程序设计1

c++ - 调整原子 vector 的大小?

如何调整原子vector的大小?例如,以下代码无法编译:#include#include#includeintmain(){std::vector>v;v.resize(1000);//Problemhere!v[0]=1;return0;}错误:Infileincludedfrom/usr/local/gcc-4.8.1/include/c++/4.8.1/vector:62:0,frommain.cpp:2:/usr/local/gcc-4.8.1/include/c++/4.8.1/bits/stl_construct.h:Ininstantiationof‘voidstd::_

c++ - 多线程应用程序中的显示任务必须使用原子锁或互斥锁吗?

我正在使用C++11和内置线程类std::thread。使用std::atomic或std::mutex可以轻松同步数据,但我想知道“非敏感”任务是否真的有必要-同时保持一个没有错误的应用程序。假设有一个类classFPS{private:intrate;public:voidchange(constinti){rate=i;}intread(void){returnrate;}};存储相机的帧率。在应用程序中,有一个线程用于读取帧速率的数据采集(帧抓取等),还有另一个线程处理显示帧速率的GUI。在这种情况下,显示是“非关键”的,这意味着在某些情况下允许显示滞后于实际速率。我当然可以简

c++ - std::atomic 如何保证原子性

如果我有密码a=a+1,现在我明白执行此操作需要多个CPU级别的操作,但是如何定义a作为std::atomic使这些多个事务成为原子?它是否改变了CPU指令的执行方式。我假设它必须以某种方式将指令数减少到1,这样任何上下文切换都不会导致不可靠的结果,但它是如何做到的呢?如果编译器总是可以创建这样的代码,为什么不总是这样做呢? 最佳答案 如果有原子指令可以发出(对于已知可能的原子操作),则发出这条原子指令,否则会带锁机制。有一个函数(C++17)可以告诉您原子类型是否始终是无锁的:is_always_lock_free.请注意,如果此

C++原子与锁

假设我有一个foo类:classfoo{staticuint32count_;pthread_mutex_tmu;voidincrease(){pthread_mutex_lock(&mu);count_++;pthread_mutex_unlock(&mu);}}如果我不使用互斥量,而只是将std::atomic作为count_,会有什么不同吗?谢谢! 最佳答案 差别很大。pthread_mutex_lock可能非常昂贵,因为它可能包含系统调用*。原子增量产生lockxadd.另一个优势是std::atomic可能更好移植,因为它

正点原子-STM32通用定时器学习笔记(1)

目录1.通用定时器简介(F1为例)2.通用定时器框图①时钟源②控制器③时基单元④输入捕获⑤捕获/比较(公共)⑥输出比较3.时钟源配置3.1计数器时钟源寄存器设置方法3.2外部时钟模式13.3 外部时钟模式23.4定时器级联4.通用定时器中断实验1.通用定时器简介(F1为例)F1系列通用定时器有4个,TIM2/TIM3/TIM4/TIM5主要特性:16位递增、递减、中心对齐计数器(计数值:0~65535);16位预分频器(分频系数:1~65536);可用于触发DAC、ADC;在更新事件、触发事件、输入捕获、输出比较时,会产生中断/DMA请求;4个独立通道,可用于:输入捕获、输出比较、输出PWM、

c++ - 是否会在其他线程中始终以相同顺序看到对不同线程中不同位置的两次原子写操作?

与我的previous问题类似,请考虑以下代码--Initially--std::atomicx{0};std::atomicy{0};--Thread1--x.store(1,std::memory_order_release);--Thread2--y.store(2,std::memory_order_release);--Thread3--intr1=x.load(std::memory_order_acquire);//xfirstintr2=y.load(std::memory_order_acquire);--Thread4--intr3=y.load(std::memo

c++ - 原子的类内初始化

为什么在这个例子中structFoo{atomicx=1;};编译器(gcc4.8)正在尝试使用已删除的atomic&operator=(constatomic&),(因此该示例无法编译),而此处structBar{Bar(){x=1;}atomicx;};它按预期调用intoperator=(int)吗?PS:我已经知道了structXoo{atomicx{1};};很好(无论如何是初始化x的更好方法),但我仍然很好奇为什么Foo坏了。PS:我误读了编译器错误(并忘记将其包含在问题中)。它实际上说:error:useofdeletedfunction‘std::atomic::ato

大咖云集,2023 开放原子开发者大会助力开发者实现梦想

12月16日,以“一切为了开发者”为主题的开放原子开发者大会在无锡开幕。大会聚焦大模型、云原生、前端、自动驾驶、物联网、开源治理与开发者运营等多内容,汇聚顶尖开源人才,解决行业发展的技术难点与痛点,为广大开发者带来一场精彩的技术盛宴。开幕式上,中国工程院院士倪光南、开放原子开源基金会理事长孙文龙、中国开源软件推进联盟主席陆首群、中国Linux先行者宫敏,以及来自深开鸿、腾讯云、vivo、YDB、浪潮的重磅嘉宾发表主题演讲,并展开了一场题为“新时代,新开发者”的圆桌对话。中国工程院院士倪光南倪光南在视频演讲中表示,中国已经进入开源大国,有望从开源大国走向开源强国。中国要在全球开源领域中发挥自己应