保证RTOS线程安全的常规操作 CAS(Compare-And-Swap):一般操作系统、编译器、芯片驱动都会提供相应的接口;多核心/多进程:采用CAS机制实现无锁线程安全,芯片一般都有CAS相关的寄存器;RTOS:采用系统的互斥锁,将中断中的共享数据操作改到任务中监听执行;裸机:采用临界区(原子操作),暂时关闭所有中断响应;
【解决】VSCode在windows下不能打开标准头文件 鼠标放到标准头文件上,VSCode提示一下错误:#include errors detected. Please update your includePath. IntelliSense features for this translation unit (X:\_09_Linux\_02_程序\work\robot-car\module\tcp_server\drive_tc
linux下好用的任务管理器htop 给大家推荐个好用的任务管理器htop,简直好用的不得了。完虐top。不解释了,看文章!!!在 Linux 系统中,top 命令用来显示系统中正在运行的进程的实时状态,它显示了一些非常有用的信息,比如 CPU 利用情况、内存消耗情况,以及每个进程情况等。但是,你知道吗?还有另外一个命令行工具 'htop',它与传统的 top 命令功能一样,但它有更加强大的功能及能显示更多的信息。......
makefile 完美教程 简介Makefile 是和 make 命令一起配合使用的,很多大型项目的编译都是通过 Makefile 来组织的,。我建立工程的方法有以下三点:1.makefile:优点:使用非常广泛,通用性强,可跨平台。缺点:语法比较蛋疼。要写出一个通用,便于管理,且兼容性强的makefile比较困难。2.cmake:优点:简单易用,使用较广泛,方便管理,可跨平台。缺点:自动生成的ma......
多线程() 1.要点:1.多线程编译时要用 “gcc thread.c -lpthread -o thread” 调用静态库编译。2.线程要在sleep内运行,sleep结束就无法调用线程运行了。(usleep是微秒级的延时)3.多线程宏观上可以看作是并发的(实际只是分时复用而已),因此不需要考虑sleep切换给其他线程,系统会自动分配时间片。4.全局变量是共同拥有的。(与进程不同)5...
linux下的多进程学习探究 入门1. 要点进程相当于自我复制,将自己复制到另一个内存区域执行。复制出来的进程叫做子进程,进程之间相互独立(全局变量也是独立拥有的)。Fork创建的新进程是和父进程(除了PID和PPID)一样的副本,包括真实和有效的UID和GID、进程组合会话ID、环境、资源限制、打开的文件以及共享内存段。如果fork执行成功,就向父进程返回子进程的PID,并向子进程返回0。这就一起...
signal系统信号 signal(,)常用信号量类型SIGABRT :进程停止运行 SIGINT :终端中断 SIGQOUT :终端退出 SIGCHLD :子进程已经停止或退出 例程如下:#include #include int main(int argc,char *argv[]){ signal(SIGINT,SIG_IG...
chmod命令 chmod命令文件权限属性设置资料来自:http://man.linuxde.net/chmodchmod命令用来变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果用户对符号连...
sh脚本() sh脚本说明使用脚本的目的是为了把繁琐的,重复的事情变得简单,可以一键化处理。sh语法开头:#!/bin/sh注释:#变量:赋值:NAME=”wind”提取值:$NAME打印值:echo $NAME执行新进程执行:./xxx.sh在此模式下,运行环境由父进程复制而来,相当于克隆了一个新进程来执行。...
linux下自定义指令alias 自定义指令alias指令alias =''例如:alias cp='cp -i'注意:使用这种方法,重启后就会失效。可以尝试用systemd或者/etc/rc.local的办法设置成永久有效。最近发现更方便的办法在下文介绍。编辑 source ./.bashrc指令 :source ./.bashrc首先打开...
内存共享 Linux内存共享说明内存共享是进程通信最快的手段,不需要多次转存数据就可实现的数据交换。是大数据和实时性高的数据通信的最佳选择。下面我就介绍下内存共享常用的函数,以及使用注意事项。函数说明1.创建共享内存标识int shmget(key_t key, size_t size, int shmflg);示例 : shmid...
Ubuntu 连接 wifi -亲测可用 连接wifi修改 /etc/network/interfaces 文件(这个文件是定义网络配置的)sudo vim /etc/network/interfacesinterfaces修改后文件内容如下:auto eth0 iface eth0 inet dhcp #localhost使用DHCPauto wlan0 allow-hotplug wlan0 #