草庐IT

dev-master

全部标签

《Mastering the FreeRTOS Real Time Kernel》读书笔记(7)事件组

8.事件组之前已经介绍了多任务之间的交流桥梁,包括了队列和信号量。与队列和信号量不同:事件组允许任务在“阻塞”状态下等待一个或多个事件的组合发生。事件组在事件发生时,取消等待同一事件或事件组合的所有任务的阻塞状态。事件组的这些独特属性可用于同步多个任务、向多个任务广播事件、允许任务在“阻塞”状态下等待一组事件中的任何一个事件发生,以及允许任务在阻止状态下等待多个操作完成。事件组还提供了减少应用程序使用的RAM的机会,因为通常可以用单个事件组替换许多二进制信号量。8.2事件组的特性事件“flag”是一个布尔值(1或0),用于指示事件是否发生。事件“group”是一组事件标志。事件标志只能是1或0

《Mastering the FreeRTOS Real Time Kernel》读书笔记(5)中断管理

6.中断管理在读这一章之前一直有一些疑惑,FreeRTOS中的中断是软中断吗,还是将外部硬中断的触发后,导入FreeRTOS的内部进行调度处理。如果是第一种,软中断和第三章讲的任务有区别吗,还是只是优先级比所有任务高。如果是第二种的话,外部中断的服务函数是不是不能写内容了,FreeRTOS的运行和裸机程序水火不容吗?6.1章节介绍事件嵌入式实时系统必须对源自环境的事件做出响应。在不同情景下,都必须判断最佳事件处理实现策略:1.应如何检测事件?通常使用中断,但也可以轮询输入。2.当使用中断时,中断服务例程(ISR)内部应该执行多少处理,外部应该执行多少?通常希望每个ISR尽可能短。3.如何将事件

《Mastering the FreeRTOS Real Time Kernel》读书笔记(6)资源管理

7.资源管理(互斥量)在多任务系统中,如果一个任务开始访问资源,但在从运行状态转换出来之前没有完成访问,则可能会出现错误。如果任务使资源处于不一致状态,则任何其他任务或中断对同一资源的访问都可能导致数据损坏或其他类似问题。这里的资源管理,应该是指计算机的外设资源,比如LCD显示器,寄存器,内存中的数据,甚至包括不确定是否可以重传的函数(线程安全与否)。每个任务都有访问和利用资源的权利,但是需要按照一定的规章制度,来规范特定资源的使用,避免出现争抢,不能仅仅按照内核安排。为了确保始终保持数据一致性,必须使用“互斥”技术管理对任务之间或任务与中断之间共享的资源的访问。7.2关键区域和挂起程序划关键

mysql - Docker 镜像无法在 Live 上构建,但在 Dev 上正常

我对Docker有一个奇怪的问题。这是有问题的Dockerfile。FROMpython:2.7RUNapt-getupdate&&apt-getinstall-y\build-essential\python-lxml\python-dev\python-pip\python-cffi\libcairo2\libpango1.0-0\libpangocairo-1.0.0\libxml2-dev\libxslt1-dev\zlib1g-dev\libpq-dev\libjpeg-dev\libgdk-pixbuf2.0-0\libffi-dev\mysql-client\shared

git使用git push -u origin master提交远程仓库时报错error: failed to push some refs to ‘‘https://gitee.com/xx报错解决

今天使用git提交到远程仓库时报错,报错如下:error:failedtopushsomerefsto‘https://gitee.com/hxxx-d/gitstudy.git’错误原因:未将远程仓库克隆到本地正确解决办法:1.先与远程仓库建立连接gitremoteaddoriginhttps://gitee.com/hxxx-d/gitstudy.git2.gitcheckoutmaster切换到默认分支3.然后使用gitpulloriginmaster--allow-unrelated-histories将远程仓库的master与本地仓库的进行合并。(–allow-unrelated-h

k8s-1.23.10版本安装(环境准备、安装containerd、master安装、node节点和网络安装)

1.环境准备【所有节点上执行】1.1关闭无用服务关闭selinux#sed-i's#SELINUX=enforcing#SELINUX=disabled#g'/etc/sysconfig/selinux#sed-i's#SELINUX=enforcing#SELINUX=disabled#g'/etc/selinux/config关闭交换分区#sed-i"/swap/{s/^/#/g}"/etc/fstab#swapoff-a关闭防火墙#systemctlstopfirewalld#systemctldisablefirewalld关闭其他无用模块#systemctldisableauditd

mysql - 设置 MySQL master - master 复制

我目前有一个主服务器,想添加另一个主服务器进行故障转移。在主服务器上,我将以下内容添加到“my.ini”server-id=1replicate-same-server-id=0auto-increment-increment=2auto-increment-offset=1log_bin=mysql-binlog_error=mysql-bin.errbinlog_do_db=1binlog_do_db=2binlog_do_db=3binlog_do_db=4一旦添加:master-host=[IP]master-user=[usernameslaveuser]master-pas

MySQL 复制 : Waiting to reconnect after a failed registration on master

我在主-主设置中有两个MySQL服务器。设置完全相同(遵循我上次编写的过程)但未按预期工作。我正在收到消息:Slave_IO_State:在master上注册失败后等待重新连接Slave已读取所有中继日志;等待从I/O线程更新它Slave_IO_Running:正在连接我多次重新创建复制用户都无济于事。如果我使用另一个用户(在本例中为管理员,拥有所有权限),一切正常。我找不到用户名会影响连接的任何原因。有什么想法吗? 最佳答案 我不确定您是否已授予用户复制从属服务器的权限,但如果没有,请执行以下操作......mysql>CREAT

《Mastering the FreeRTOS Real Time Kernel》读书笔记(4)软定时器

5.软件定时器管理软件定时器由FreeRTOS内核实现,并受其控制。它们不需要硬件支持,也与硬件计时器或硬件计数器无关。软件定时器功能是可选的。包括软件定时器功能:1。作为项目的一部分,构建FreeRTOS源文件FreeRTOS/source/timers.c。2.在FreeRTOSConfig.h中将configUSE_TIMERS设置为1。5.2软件定时器回调函数voidATimerCallback(TimerHandle_txTimer);返回值为void,并将软件计时器的句柄作为其唯一参数。软件定时器回调函数是在启动FreeRTOS调度器时自动创建的任务的上下文中执行的。因此,重要的是

DEV C++:手把手带你配置graphics.h(以DEV C++ 5.11为例)

第一步:下载ege包,百度搜索“ege官网”,如图,点开这一个。 第二步:下载ege。点击这个选项:第三步:解压缩后,看到以下文件:打开include目录,里面的文件全部复制到下图目录:再把.\ege20.08_all\EGE20.08\lib\devcpp中两个A文件复制到如下两个目录:最后配置:打开“编译选项”,看到如图界面:把-static-libgcc删掉,64-bit的全都加入-lgraphics64-luuid-lmsimg32-lgdi32-limm32-lole32-loleaut32-lwinmm-lgdiplus 32-bit的全都加入-lgraphics-luuid-lm