11 2019 档案
摘要:1 #include<iostream> 2 #include<string> 3 using namespace std; 4 class boss{ 5 public: 6 int fight(){ 7 int ret = 10; 8 cout << "boss::fight():ret=" <
阅读全文
摘要:https://blog.csdn.net/jkx01whg/article/details/78119189 Linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。一、互斥锁(mutex) 锁机制是同一时刻只允许一个线程执行一个关键部分的代码。 1. 初始化锁 int pt
阅读全文
摘要:版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/lyn_00/article/details/84789508几种常见进程间通信(IPC)方式-共享存储前言进程间通信是指在不同进程之间传播或
阅读全文
摘要:https://www.cnblogs.com/ck1020/p/6669661.html 要说挂起、阻塞、睡眠难免让人想到进程生命周期中的阻塞态或者等待状态,而挂起和睡眠却没有出现在进程生命周期中,说明这三个其实在本质上区别并不那么大,但是既然称呼不同,应该就有不同的道理。 先说阻塞,既然它能出现
阅读全文
摘要:1 #include<iostream> 2 #include<string> 3 using namespace std; 4 class parent{ 5 public: 6 int mi; 7 void add(int v){ 8 mi += v; 9 } 10 void add(int a
阅读全文
摘要:VDDA为所有的模拟电路部分供电,包括: ADC模块,复位电路,PVD(可编程电压监测器),PLL,上电复位(POR)和掉电复位(PDR)模块,控制VBAT切换的开关等。即使不 使用ADC功能,也需要连接VDDA,强烈建议VDD和VDDA使用同一个电源供电。 VDD与VDDA之间的电压差不能超过30
阅读全文
摘要:setenv bootargs root=/dev/nfs nfsroot=192.168.1.8:/opt/rootfs ip=192.168.1.110:192.168.1.8:192.168.1.1:255.255.255.0 init=/linuxrc console=ttySAC0,115
阅读全文
摘要:可能遇到的问题: 1:内核是否支持开发板上的显示屏驱动! 若不支持可以进入内核源码对内核进行配置,让其支持显示屏的驱动。 具体步骤: 进入内核源码目录 make distclean //获取最干净源码 make abc_defconfig //配制内核源码支持abc这个参考板 注意:abc_defc
阅读全文
摘要:在ubuntu系统下安装好qt5.5后启动qtceator时提示: Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/libHelp.so: 无法加载库Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/libHelp
阅读全文
摘要:#include<iostream> 2 #include<string> 3 using namespace std; 4 class parent{ 5 protected: 6 int m_a; 7 int m_b; 8 public: 9 int m_c; 10 void set(int a
阅读全文
摘要:#include<iostream> 2 #include<string> 3 using namespace std; 4 class parent{ 5 protected: 6 int m_a; 7 int m_b; 8 public: 9 int m_c; 10 void set(int a
阅读全文
摘要:1 include<iostream> 2 #include<string> 3 using namespace std; 4 class parent{ 5 protected: 6 int mv; 7 public: 8 parent(){ 9 mv = 100; 10 } 11 int val
阅读全文
摘要:1、按键驱动程序的第一个版本:day07/04 //内核模块的基本要求 init.h module.h LICENSE struct cdev btn_cdev; btn_read(...) { //阻塞 等待队列 睡眠 //非阻塞 将数据拷贝到用户空间 } struct file_operatio
阅读全文
摘要:C++中存在将类对象转换成其他类型 语法: operator type(){} //无参数无返回值,type类型就是类对象将要转换成的类型 1 #include<iostream> 2 #include<string> 3 using namespace std; 4 class test{ 5 i
阅读全文
摘要:标准数据类型之间会进行 隐式类型的安全转换 转换规则如下: char→int→unsigned int →long→unsigned long→float→double ↓ short→int 1 #include<iostream> 2 #include<string> 3 using names
阅读全文
摘要:1、内存管理 (将物理内存映射到内核空间(3G~4G)并使用) 深入内核: 伙伴系统 1.1基本概念 1)linux内核管理内存是以物理内存页为单位 一个物理内存页通常为4KB 内核会为每个物理内存页创建如下结构变量 struct page { //记录该物理内存页被引用的次数 为0 代表空闲页 a
阅读全文
摘要:(1)保护二极管 引脚内部加上这两个保护二级管可以防止引脚外部过高或过低的电压输入, 当引脚电压高于 VDD_FT 或 VDD 时,上方的二极管导通吸收这个高电压,当引脚 电压低于 VSS 时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁。 尽管 STM32 芯片内部有这样的保护,但并不意味
阅读全文
摘要:1#include<iostream> 2 using namespace std; 3 class test{ 4 int mvalue; 5 public: 6 test(int i){ 7 cout << "test(int i)=" << i << endl; 8 mvalue = i; 9
阅读全文
摘要:class test{ 2 int mvalue; 3 public: 4 test(int i){ 5 cout << "test(int i) =" << i << endl; 6 mvalue = i; 7 } 8 int value(){ 9 return mvalue; 10 } 11 t
阅读全文
摘要:#include<iostream> 2 using namespace std; 3 class test{ 4 int mvalue; 5 public: 6 test(int i){ 7 cout << "test(int i)=" << i << endl; 8 mvalue = i; 9
阅读全文
摘要:1、设备的阻塞方式访问 应用编程 sd=socke(...) recv(sd, ....)//无数据阻塞等待 有数据立即返回 希望按键设备 也能达到在用户空间阻塞方式访问 内核中为了实现设备的阻塞方式访问,提供了一套机制: 等待队列 核心数据结构 wait_queue_head_t 实验步骤: 1)
阅读全文
摘要:1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效。 如果是初学vi,运行一下vimtutor是个聪明的决定。 (如果你的系统环境不是中文,而你想使用中文的vimtutor,就运行vimt
阅读全文
摘要:1 #include<iostream> 2 #include <stdio.h> 3 using namespace std; 4 class test{ 5 int mvalue; 6 public: 7 explicit test(int i=0){ //此处的explicit表明该构造函数需
阅读全文
摘要:1, #include<iostream> 2 2 #include<string> 3 3 using namespace std; 4 4 class test{ 5 5 int i; 6 6 public: 7 7 test(int i){ 8 8 cout << "test(int i)"
阅读全文
摘要:1 #include<iostream> 2 using namespace std; 3 class test{ 4 int mvalue; 5 public: 6 test(int i){ 7 mvalue = i; 8 } 9 int value(){ 10 return mvalue; 11
阅读全文
摘要:同步就是你叫我去吃饭,我听到了就和你去吃饭; 如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。异步就是你叫我,然后自己去吃饭,我得到消息后可能立即走,也可能等到下班才去吃饭。 所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。 同步是指:发送方发出数据后,等接
阅读全文
摘要:1 #include<iostream> 2 #include<string> 3 using namespace std; 4 class Test{ 5 private: 6 int*m_pointer; 7 public: 8 Test(){ 9 m_pointer = NULL; 10 }
阅读全文
摘要:函数调用 1 #include<string> 2 using namespace std; 3 //重载函数调用操作符() 4 //函数对象取代函数指针 5 class Fib{ 6 private: 7 int a0; 8 int a1; 9 public: 10 Fib():a0(0),a1(
阅读全文
摘要:1 #ifndef _INTARRAY_H_ 2 #define _INTARRAY_H_ 3 class IntArray{ 4 private: 5 int m_length; 6 int* m_pointer; 7 IntArray(int len); 8 IntArray(const Int
阅读全文
摘要:[ 221.341000] bad: scheduling from the idle thread![ 221.341000] [<c0014e80>] (unwind_backtrace+0x0/0x138) from [<c0073390>] (dequeue_task_idle+0x1c/0
阅读全文
摘要:Linux中cp和scp命令的使用方法 Linux为我们提供了两个用于文件copy的命令,一个是cp,一个是scp,但是他们略有不同。 cp 主要是用于在同一台电脑上,在不同的目录之间来回copy文件 scp 主要是在不同的Linux系统之间来回copy文件 关于cp的具体用法: 命令基本格式: c
阅读全文
摘要:1:影子寄存器:这表示在物理上这个寄存器对应2个寄存器:一个是我们可以可以写入或读出的寄存器,称为预装载寄存器,另一个是我们看不见的、无法真正对其读写操作的,但在使用中真正起作用的寄存器,称为影子寄存器. 2:输入捕获:当检测到ICx信号上有有效转换边沿后,计数器的当前值被锁存到捕获/比较寄存器(T
阅读全文
摘要:谈谈对中断的理解? 中断是计算机中处理异步事件的重要机制 中断触发的方式: 1)中断源级设置 按键:(CPU之外的硬件) 设置中断的触发方式 uart控制 (CPU之内的硬件) 不用设置触发方式 中断使能 2)中断控制器级设置 优先级 中断使能 ...设置发往哪个核 3)ARM设置 cpsr.I =
阅读全文
摘要:1、软中断机制 不能以模块形式出现 使用起来不够灵活2、tasklet 核心数据结构 struct tasklet_struct { function data .... } 1)定义tasklet变量 2)初始化tasklet变量 DECLARE_TASKLET //定义并初始化tasklet变量
阅读全文
摘要:http://www.zsythink.net/archives/1733/
阅读全文
摘要:find 是 Linux 中强大的搜索命令,不仅可以按照文件名搜索文件,还可以按照权限、大小、时间、inode 号等来搜索文件。但是 find 命令是直接在硬盘中进行搜索的,如果指定的搜索范围过大,find命令就会消耗较大的系统资源,导致服务器压力过大。所以,在使用 find 命令搜索时,不要指定过
阅读全文
摘要:1.PWM简介 PWM是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调 制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控 制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成 为电力电子技术最广泛应用的控制方式,其应用领域包括测量,通信, 功率
阅读全文
摘要:1、linux系统中的中断处理 1.0裸板中中断异常是如何处理的? 以s5p6818+按键为例 1)按键中断的触发 中断源级配置 管脚功能 中断使能 中断触发方式 (如果中断源是uart/i2c 只需要配置中断使能) 中断级级设置 中断优先级设置 中断使能 ARMcore级设置 cpsr.I=0 2
阅读全文
摘要:本文链接:https://blog.csdn.net/zh175578809/article/details/78576193 最近正在学习Linux系统的常用操作命令,于是心血来潮,想自己安装一个Linux系统实践一下,在网上找了半天资料,终于在自己的电脑上成功安装了,实现了Windows+Lin
阅读全文
摘要:16道嵌入式C语言面试题(经典) 1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,
阅读全文
摘要:检测内核是否以及支持 要插入的驱动,若内核支持,则需要裁减掉内核支持的驱动才能安装上自己所写的驱动程序。
阅读全文
摘要:1、通过GPIO库函数控制LED open("/dev/myleds",...) close(fd) sys_open sys_close led_open(...) led_release(...) { { 亮灯 灭灯 } } 电路原理图: 控制LED1 实则控制CPU上的管脚GPIOC12输出低
阅读全文
摘要:1、模块参数 应用编程: int main(int argc, char *argv[]) { } ./a.out xxx yyy zzz 内核编程: insmod xxx.ko 参数信息 希望在安装内核模块时也可以给其传递参数,需要使用模块参数 模块参数的实现步骤: 1)在模块中定义全局变量 2)
阅读全文
摘要:linux驱动程序开发1、linux驱动工程师需要具备的知识 1)硬件的知识 看懂电路原理图 (二极管 三极管 电阻...) 底板和核心板中名称相同的导线是同一条导线 目的:找到要驱动的硬件和CPU的连接方式 熟悉常见的接口:gpio uart i2c 1-wire spi 485 can usb
阅读全文
摘要:1.定时器介绍 STM32F1的定时器非常多,由2个基本定时器(TIM6、TIM7)、4个通 用定时器(TIM2-TIM5)和2个高级定时器(TIM1、TIM8)组成。基本定 时器的功能最为简单,类似于51单片机内定时器。通用定时器是在基本 定时器的基础上扩展而来,增加了输入捕获与输出比较等功能。高
阅读全文
摘要:移植linux内核的关键文件: arch/arm/mach-s5p6818/cpu.c cpu_init_machine() { //s5p6818内部控制器的驱动注册 nxp_cpu_devs_register(); //x6818板子上硬件驱动的注册 nxp_board_devs_registe
阅读全文
摘要:原文链接:https://blog.csdn.net/okyoung188/article/details/763157741.linux下各文件夹的意义: /bin:是binary的缩写,包含了引导系统启动所需的命令和普通用户可以使用的常用命令 /lib:是根文件系统目录下程序和核心模块的共享库,
阅读全文
摘要:1.外部中断介绍1.1 EXTI简介 STM32F10x外部中断/事件控制器(EXTI)包含多达 20 个用于产生事 件/中断请求的边沿检测器。EXTI的每根输入线都可单独进行配置,以选 择类型(中断或事件)和相应的 触发事件(上升沿触发、下降沿触发或 边沿触发),还可独立地被屏蔽。1.2 EXTI
阅读全文
摘要:1.中断介绍: 1.1 中断概念 CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂 时中断正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序 或中断处理程 序),以处理该事件,该事件处理完后又返回被中断的程序 继续执行,这一过程称为中断。引发中断的称为中断源。比如:看电
阅读全文
摘要:LED数码管根据LED的不同接法可以分为2类:共阴数码管和共阳数码管。 共阴数码管码表0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0 1 2 3 4 50x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 6 7 8 9 A B0x39, 0x5e, 0
阅读全文
摘要:1.SysTick定时器介绍 SysTick定时器也叫SysTick滴答定时器,它是Cortex-M3内核的一个 外设,被嵌入在 NVIC 中。它是一个24 位向下递减的定时器,每计数一 次所需时间为1/SYSTICK,SYSTICK是系统定时器时钟,它可以直接取自 系统时钟,还可以通过系统时钟8分
阅读全文
摘要:C语言中的可变参数-printf的实现原理 在C/C++中,对函数参数的扫描是从后向前的。C/C++的函数参数是通过压入堆栈的方式来给函数传参数的(堆栈是一种先进后出的数据结构),最先压入的参数最后出来,在计算机的内存中,数据有2块,一块是堆,一块是栈(函数参数及局部变量在这里),而栈是从内存的高地
阅读全文
摘要:1:上/下位机安装相应的服务程序。(确保内核支持该服务)2:上位机(作为服务器端)配置能够给下位机访问目录的所在地,及其读写权限。3:在/dev目录下创建该服务其所需要使用的虚拟文件设备,同时按照该服务支持的文件格式将其挂载到刚刚创建的虚拟设备文件上。此时内核就可以管理该设备文件,及支持 该服务与客
阅读全文
摘要:在理解进程和线程概念之前首选要对并发有一定的感性认识,如果服务器同一时间内只能服务于一个客户端,其他客户端都再那里傻等的话,可见其性能的低下估计会被客户骂出翔来,因此并发编程应运而生,并发是网络编程中必须考虑的问题。实现并发的方式有多种:比如多进程、多线程、IO多路复用。 多进程 进程是资源(CPU
阅读全文
摘要:ubuntu 系统默认已安装ufw.1.安装sudo apt-get install ufw2.启用sudo ufw enablesudo ufw default deny运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。3.开启/禁用sudo
阅读全文
摘要:本文链接:https://blog.csdn.net/loovejava/article/details/21837935新安装的Ubuntu在使用sudo apt-get update更新源码的时候出现如下错误:W: GPG 错误:http://ppa.launchpad.net precise
阅读全文
摘要:在了解/etc/ld.so.conf.d/目录下文件的作用之前,先介绍下程序运行是加载动态库的几种方法:第一种,通过ldconfig命令 ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动
阅读全文
摘要:在运行时均可使用make V=1 显示文件的编译过程从而找到链接文件,从中找到入口文件。 uboot: ../uboot/include/configs/x6818.h 记录开放板的硬件信息。 ../uboot/u-boot.lds 链接脚本记录入口地址。 busybox: init/init.c
阅读全文
摘要:一、 ROM(Read Only Memory) ROM(Read Only Memory),只读存储器。用来存储和保存数据。ROM数据不能随意更新,但是在任何时候都可以读取。即使是断电,ROM也能够保留数据。 ROM也有很多种: PROM是可编程一次性(无法修改)的ROM; EPROM是紫外线可擦
阅读全文
摘要:1.位带介绍 1)位带操作 在学习51单片机时就已经使用过位操作,比如使用sbit对单 片机IO口的定义,但是STM32中并没有这类关键字,而是通 过访问位带别名区来实现,即通过将每 个比特位膨胀成一个32位字,当访问这些字的时候就达到了访问比特的目的。 比方说BSRR寄存器有32个位,那么可以映射
阅读全文
摘要:mount -a 自动按照格式执行/etc/fstab里面的文件。 /etc/fstab 文件格式: device mount-point type options dump fsck proc /proc proc defaults 0 0 tmpfs /tmp tmpfs defaults 0
阅读全文
摘要:链接: https://pan.baidu.com/s/1YJl-MfG0tVy9sLx4_otmnA 提取码: smfp https://blog.csdn.net/John_chaos/article/details/85924824 在文件/etc/rc.local中加入 sudo modpr
阅读全文
摘要:dmesg :将printk输出的信息重新输出一遍(信息在缓存区中)。
阅读全文
摘要:1.时钟树介绍 SystemInit()后时钟频率大小:SYSCLK(系统时钟) =72MHzAHB 总线时钟(HCLK=SYSCLK) =72MHzAPB1 总线时钟(PCLK1=SYSCLK/2) =36MHzAPB2 总线时钟(PCLK2=SYSCLK/1) =72MHzPLL 主时钟 =72
阅读全文
摘要:RAM: Random Access Memory 随机存取存储器 RAM掉电丢失,典型的RAM是计算机的内存。 SRAM:Static RAM 只要供电数据就一直存在,不需要动态刷新,所以叫静态RAM。 DRAM: Dynamic RAM 动态随机存取存储器,最为常见的系统内存,DRAM 只能将数
阅读全文