• avatar leon201903091654136 2021-01-09 22:48:56

    QegellHzTc

    重要通知 即日起本博客的文章也将同步更新到“牛客网”!

  • avatar leon201903091654136 2021-01-09 22:49:17

    详解嵌入式系统Boot-Loader

    <article class="&#95;2rhmJa" style="font&#45;size&#58; 16px&#59;"> 上电之后(bootload阶段)该做什么 1、第一行程序 拿到空

  • avatar leon201903091654136 2021-01-09 22:49:38

    Linux专家必读的几本书

    工作几年来,一直从事Linux内核驱动方面的开发。从接触Linux到现在,读过不少Linux方面的书籍,现把认为很不错的一部分列出来和大家分享一下。 入门类 一直认为,在一个系统上学习开发之前,首先需要熟悉这个系统的使用。鉴于天朝的国情,绝大部分人第一个接触的操作系统就是Windows,因此对于

  • avatar leon201903091654136 2021-01-09 22:49:58

    嵌入式系统开发环境概述

    <article class="&#95;2rhmJa" style="font&#45;size&#58; 16px&#59;"> 嵌入式系统开发环境主要包括: 集成开发工具 交叉编译器 批处

  • avatar leon201903091654136 2021-01-09 22:50:22

    嵌入式系统平台构建介绍

    <article class="&#95;2rhmJa" style="font&#45;size&#58; 16px&#59;"> 我对嵌入式系统平台的定义很简单:能让电子产品的原因程序得以顺利开发的环境,主要

  • avatar leon201903091654136 2021-01-09 22:50:44

    嵌入式系统开发项目管理

    <article class="&#95;2rhmJa" style="font&#45;size&#58; 16px&#59;"> 项目生命周期五大阶段 1、项目启动阶段 (1)项目可行性分析 一个

  • avatar leon201903091654136 2021-01-09 22:51:07

    嵌入式驱动解析:从串口驱动到Linux驱动模型

    本文通过对Linux下串口驱动的分析。由最上层的C库。到操作系统系统调用层的封装。再到tty子系统的核心。再到一系列线路规程。再到最底层的硬件操作。 对Linux中的tty子系统进行简要的说明。从理论到实践。以便读者能对OS原理有更深入的了解和更具体的掌握。 在具体分析之前。我们必须对串口。驱动

  • avatar leon201903091654136 2021-01-09 22:51:34

    Win10自带Ubuntu子系统的安装与配置

    程序猿们有福了!!!Windows和Linux终于合体了,在同一个WIN10系统下,你既可以继续享受微软给我们带来的便捷,同时又可以开开心心的码代码了,而且有了海量的Linux工具支持。 安装Windows Terminal 在远程连接其他Linux的时候,我通常使用Xshell,就因为它长得比

  • avatar leon201903091654136 2021-01-09 22:51:57

    关于嵌入式C代码优化的几种方法

    1、选择合适的算法和数据结构 选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。 在许

  • avatar leon201903091654136 2021-01-09 22:52:18

    libpng warning: iCCP: known incorrect sRGB profile

    问题:当在pycharm中引用pygame模块导入png图像运行后,发出警告:libpng warning: iCCP: known incorrect sRGB profile 原因:因为libpng-1.6以上版本增强了ICC profiles检查,所以发出警告。此警告可以忽略。若要消除警

  • avatar leon201903091654136 2021-01-09 22:52:39

    pycharm中导入pygame库失败及解决办法

    <article class="&#95;2rhmJa" style="font&#45;size&#58; 16px&#59;"> ERROR: Could not install packages due t

  • avatar leon201903091654136 2021-01-09 22:53:01

    在Python 2.x中如何使用中文

    在Python 2.x中如何使用中文 在计算机中有两种文本文件编码格式,一是早期的ASCII编码格式,还有一种是现在普遍使用的Unicode编码格式;前者用一个字节表示一个字符,只能表示出256种字符,而后者用1~6个字节表示一个字符,能表示出地球上的所有字符。 Python 2.x 默认

  • avatar leon201903091654136 2021-01-09 22:53:22

    如何将.ipynb文件转换为.py文件

    <article class="&#95;2rhmJa" style="font&#45;size&#58; 16px&#59;"> 作业条件:在jupyter notebook下编写完程序,保存为“my

  • avatar leon201903091654136 2021-01-09 22:53:42

    本地浏览器连接服务器端jupyter notebook服务

    当前环境: 本地客户端环境:window环境,ssh连接工具(putty、Xshell、FinalShell等)或者是win10自带的命令行终端,任意浏览器; 服务器端环境:Linux操作系统(ubuntu、centos、Debian等)中,已安装了python3,jupyter

  • avatar leon201903091654136 2021-01-09 22:54:03

    本地浏览器下远程连接jupter notebook服务器

    <article class="&#95;2rhmJa" style="font&#45;size&#58; 16px&#59;"> 当前环境: 本地客户端环境:window环境,ssh

  • avatar 牛客904930010号 2021-01-09 22:54:07

    想了好久,希望能被看到

    include include using namespace std;int main(){ int n,i,j,q,count=0; stringstream s; cin>>n; for(i=1;i<=n;i++) { s<&

  • avatar leon201903091654136 2021-01-09 22:54:24

    ubuntu下如何设置环境变量

    一、设置环境变量的三种方法 1.1 临时设置 export PATH=/home/yan/share/usr/local/arm/3.4.1/bin:$PATH 1.2 当前用户的全局设置 打开~/.bashrc,添加行: export PATH=/home/yan/share/usr/

  • avatar leon201903091654136 2021-01-09 22:54:45

    ssh免密登录设置方法

    <article class="&#95;2rhmJa" style="font&#45;size&#58; 16px&#59;"> 1 前提条件 主机A,用户名为aris,IP地址为192.168.1

  • avatar leon201903091654136 2021-01-09 22:55:06

    主机之间ssh免密码登录

    1 前提条件 主机A,用户名为aris,IP地址为192.168.1.1 主机B,用户名为leon,IP地址为192.168.1.2 这两台主机上均安装了SSH服务器,且已经打开ssh服务; 检查主机上有没有安装SSH服务,使用命令:ssh 若提示命令未找到,

  • avatar leon201903091654136 2021-01-09 22:55:27

    ubuntu与windows互传文件的3种方法

    一般在进行编程作业的时候,我们会采用“开发在Windows中编辑源代码,在linux中编译、执行源代码。这往往需要需要将在Windows下编辑好的源代码上传到linux系统种进行编译。怎么来进行上传呢?其实可以有3种方法,下面一一为大家讲解: 一、通过VMWare的共享文件夹实现: 先在Wi

  • avatar leon201903091654136 2021-01-09 22:55:49

    ubuntu16.04安装Sogou输入法详细步骤

    1. 添加fcitx的键盘输入法系统 因为sogou是基于fcitx的,而系统默认的是iBus,所以要想使用搜狗输入法首先必须更改ubuntu默认的键盘输入法系统。 步骤:系统设置—>语言支持—>键盘输入法系统—>下拉菜单选择“fcitx"。 2. 安装sog

  • avatar leon201903091654136 2021-01-09 22:56:11

    ubuntu下安装jupyter notebook问题。ERROR: Package ‘ipython‘ requires a different Python: 3.5.2 not in 」=3.6

    目标: 在Ubuntu 16.04中安装jupyter notebook。 步骤: 1.安装python3 leon@ubuntu:~$ sudo apt-get install python3 2.安装pip3 leon@ubuntu:~$ sudo apt-get install

  • avatar leon201903091654136 2021-01-09 22:56:32

    VmWare虚拟机设置ubuntu和windows之间的共享文件夹

    <article class="&#95;2rhmJa"> 一般在进行编程作业的时候,我们会采用“开发在Windows中编辑源代码,在linux中编译、执行源代码。这往往需要需要将在Windows下编辑好的源代码上传到linux系统种进行编译。怎么来进行上

  • avatar leon201903091654136 2021-01-09 22:56:53

    标准测试宏选项

    系统调用和库函数的标准有多种多样(UNIX 、POSIX、BSD、V等),为了使我们编写的程序具有高度的兼容性,在编译时需要指定或弄清楚程序所在运行环境的类型。在编程时,在引进头文件之前利用#ifdef语句来判断程序运行环境并分别引用不同的头文件。然后在命令行编译时,提供指定选项来设置本次编译的环境

  • avatar leon201903091654136 2021-01-09 22:57:14

    C库函数、系统函数等调用错误的处理方法

    几乎所有的系统函数和库函数在执行时都会通过返回特定的值来说明成功或出错。我们在调用它们后,必须马上对其返回值进行检测,如果调用出错则要进行相应的处理(一般是向终端输出错误信息并终止程序运行)。否则在今后程序出错时,如果通过调试去定位到该错误将会花费很长的时间。 当然也有某些系统调用从不失败(

  • avatar leon201903091654136 2021-01-09 22:57:34

    比atoi()函数更健壮的一类包装函数

    今天介绍两个函数用以代替库函数atoi()、atol()和strtol()函数,原因是它能提供比库函数更好的错误检查机制。 int getInt(const char *arg, int flags, const char *name); long getLong(const char *arg

  • avatar leon201903091654136 2021-01-09 22:57:55

    linux下的并发编程详解

    使用应用级并发的应用程序称为并发程序(concurrent program)。现代操作系统提供3种基本的构造并发程序的方法:进程、I/O多路复用和线程。下面将分别予以讨论。 1. 基于进程的并发编程 我们可以利用熟悉的fork、execve及waitpid函数来开发基于进程的并发编程。下面以构造

  • avatar leon201903091654136 2021-01-09 22:58:36

    一文学会GDB操作命令

    GDB快速指南 版本 2 (2009 6月 14) 原文 这是一个非常快速的GDB指南,旨在让你开始在终端的命令行下熟练使用GNU调试器gdb。 更多详细信息,查看官方GDB 文档! 此外,一个好的GNU GDB前端是数据显示调试器DDD。 1.编译 您必须告诉编译器使用包含符号调试的

  • avatar leon201903091654136 2021-01-09 22:58:57

    详解高速缓存存储器的3种映射方式

    开始的计算机系统中存储器层次包括CPU寄存器、主存(DRAM)和硬盘,后来为了缓解寄存器与主存间速度的差异,系统设计者在它们之间增加了高速缓存(SRAM),它的访问速度几乎可以和寄存器一样快。 随着CPU和主存的性能差距逐渐拉大,后来在原高速缓存(L1高速缓存)和内存之间有增加了L2和L3级高速缓

  • avatar leon201903091654136 2021-01-09 22:59:24

    C程序中如何读取目录中的文件并判断文件大小等信息

    读取目录内容 应用程序可以用readdir系列函数来读取目录内容。 #include <sys/types.h> #include <dirent.h> DIR *opendir(const char *name); //成功返回目录指针,失败返回NULL struc

  • avatar leon201903091654136 2021-01-09 22:59:44

    各种I/O函数的选用原则

    应用程序可以通过诸如open、close、lseek、read、write和stat这样的函数来访问文件或I/O设备。更高级别的还有标准I/O及RIO( CS:AP网站参考代码 ,为了修补read等系统IO函数的不足而撰写的健壮的包装函数,它们自动处理不足值,为读文本行提供一种高效的带缓冲的方法。)

  • avatar leon201903091654136 2021-01-09 23:00:05

    C程序中常见与内存错误有关的坑

    间接引用坏指针 在进程的虚拟地址空间中有很多区域是还没有映射的,如果试图向这些地址进行写或读,可能会引发保护异常或段错误。 一个最典型的例子:假设我们使用scanf函数从键盘输入一个值给变量val。 正确的写法是: scanf("%d", &val); 然而,

  • avatar leon201903091654136 2021-01-09 23:00:26

    非本地跳转函数setjmp和longjmp

    C语言提供了一种用户级的异常控制流形式,称为非本地跳转(nonlocal jump),它可以将控制流直接从一个函数转移到另一个当前正在执行的函数,而不需要经过正常的调用和返回序列。而这些都是通过两组函数实现的。 setjmp函数 首先来看看函数原型: #include <setjmp.h

  • avatar leon201903091654136 2021-01-09 23:00:46

    设置Source Insight默认工作目录

    有时候source insight安装好之后,打开source insight软件会出现如下图的错误: 图片发自简书App 这是由于source insight的默认工程目录含有中文路径,导致打不开软件,此时我们可以通过修

  • avatar leon201903091654136 2021-01-09 23:01:10

    Ubuntu 下 /etc/resolv.conf文件总是自动清除问题的解决方案

    虚拟机用了几天发现Ubuntu无法上网,打开命令终端,输入命令: ~~~ ping www.baidu.com ~~~ 结果显示名称无法识别,而直接与宿主机之间使用 IP 地址进行互ping,则可以ping得通。这说明是DNS服务出现了问题。 于是,修改/etd/resolv.conf文件

  • avatar leon201903091654136 2021-01-09 23:01:31

    一文教你如何构建自己的函数库

    话说ISOC99有自己的一系列标准C函数库,例如我们熟悉的libc.a(包含标准I/O函数、字符串操作函数和整数数学函数)和libm.a(浮点数数学函数),可供我们在使用gcc编译工具编译程序时调用。那么,如果我们在日常学习或项目开发中积累了许多好的函数,希望日后在其他项目中能够复用时,我们又该如何

  • avatar leon201903091654136 2021-01-09 23:01:53

    计算机底层中的IEEE浮点数表示

    IEEE标准中浮点数用形如V = (-1)s x M x 2E的格式表示一个小数: s☞符号位,s=1代表负数,s=0代表正数。 M☞尾数,代表小数点之后的数。 E☞阶数,对刚才的小数进行加权,权重是2的E次幂。 位表示 所以整个浮点数的二进制表示形式由3个部分组成:1位的符号段(s)+ k位的

  • avatar leon201903091654136 2021-01-09 23:02:19

    FileZilla正确连接虚拟机方法

    1.查看ssh服务的状态 输入命令:sudo service sshd status 如果出现Loaded: error (Reason: No such file or directory)提示的话,说名没有安装ssh服务,按照第二步:安装ssh服务。 如果出现Active: in

  • avatar leon201903091654136 2021-01-09 23:02:40

    论程序优化一般考虑的几个方向

    写程序最主要的目标是使它在任何情况下都能正确工作,但在很多情况下,让程序运行的快也是一个重要的因素。编写高效程序要做到一下几点: 必须选择一组适当的数据结合和算法; 编写出编译器能有效优化的源代码; 编写适合不同处理器架构和性能的代码。 当然,有人可能会说,优化代码可以依靠编译工具(如

  • avatar leon201903091654136 2021-01-09 23:03:01

    一文搞懂linux的库打桩

    Linux下的链接器支持一个强大的库打桩(library interpositioning),允许你拦截对系统标准库中某个目标函数的调用,取而代之执行自己的包装函数。它可以给我们带来两个好处,一是通过添加某些语句,可以追踪自己的程序对某些库函数的调用情况;二是可以在你自己的程序中,对某些库函数偷天换

  • avatar leon201903091654136 2021-01-09 23:03:21

    一文教你如何构建动态链接库

    话说前一篇文章一文教你如何构建静态链接库向大家介绍了如何构建静态库,虽然解决了我们的一大麻烦,但静态库在使用中任然存在一些缺点。 软件更新麻烦:假如你对之前库里的某个函数功能有了更好的实现方法,想在某个之前已经使用了该函数的项目中使用新版本的库函数,这时你不得不重新编译一遍。如果项目规模小还可

  • avatar leon201903091654136 2021-01-09 23:03:44

    一文教你如何构建静态链接库

    话说ISOC99有自己的一系列标准C函数库,例如我们熟悉的libc.a(包含标准I/O函数、字符串操作函数和整数数学函数)和libm.a(浮点数数学函数),可供我们在使用gcc编译工具编译程序时调用。那么,如果我们在日常学习或项目开发中积累了许多好的函数,希望日后在其他项目中能够复用时,我们又该如何

  • avatar leon201903091654136 2021-01-09 23:04:08

    IEEE浮点数表示

    IEEE标准中浮点数用形如的格式表示一个小数: s(符号位),s=1代表负数,s=0代表正数。 M(尾数),代表小数点之后的数。 E(阶数),对刚才的小数进行加权,权重是2的E次幂。 位表示 所以整个浮点数的二进制表示形式由3个部分组成:1位的符号段(s)+ k位的阶码段 + n位的

  • avatar leon201903091654136 2021-01-09 23:04:44

    一文教你如何解决虚拟机无法联网问题

    虚拟机用了几天发现Ubuntu无法上网,打开命令终端,输入命令: ping www.baidu.com 结果显示名称无法识别,而直接与宿主机之间使用 IP 地址进行互ping,则可以ping得通。这说明是DNS服务出现了问题。 于是,修改/etd/resolv.conf文件,在这句话: #

  • avatar leon201903091654136 2021-01-09 23:05:04

    Windows主机与虚拟机下ubuntu文件夹共享设置方法

    随着Ubuntu系统升级,通过vmware虚拟机与主机共享文件夹的设置方式发生了改变,以往安装vmware-tools后即可实现,如今却不再可行。经过几天折腾,终于找到新的方法,现在总结记录如下: 1)软件版本:Vmware Workstation 10.0 + Ubuntu Desktop 16

  • avatar leon201903091654136 2021-01-09 23:05:25

    ubuntu如何安装本地deb文件

    1、转到安装包所在目录 cd 目录名/... 2、用dpkg命令运行安装包 sudo dpkg -i 安装包名称.deb dpkg常用命令: sudo dpkg -I 文件名.deb //查看iptux.deb软件包的详细信息,包括软件名称、版本以及大小等(其中-I等价于--i

  • avatar leon201903091654136 2021-01-09 23:05:45

    更新ubuntu镜像源

    1. 备份 备份/etc/apt/sources.list sudo mv /etc/apt/sources.list /etc/apt/sources.list.backup 2. 下载对应版本的sources.list,放入/etc/apt/ wget -O /etc/apt/sour

  • avatar leon201903091654136 2021-01-09 23:06:06

    ubuntu自动同步时间

    方法一:选择时区 1.执行命令: dpkg-reconfigure tzdata 2.选择Asia->Shanghai 防止系统重启后时区改变,执行下面一行命令 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 方法二:网上同步时

  • avatar leon201903091654136 2021-01-09 23:06:27

    常用正则表达式大全

    文章参考:菜鸟工具 一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(\

  • avatar leon201903091654136 2021-01-09 23:06:48

    linux命令与全拼比对

    文章摘自:https://www.cnblogs.com/wangcp-2014/p/6539035.html pwd:print work directory 打印当前目录 显示出当前工作目录的绝对路径 ps: process status(进程状态,类似于windows的任务管理器) 常用

  • avatar leon201903091654136 2021-01-09 23:07:09

    Vim中文乱码问题

    问题描述 在vim中编辑一个中文文本时 出现中文乱码情况 图片发自简书App 解决方法 修改vimrc的脚本配置 编辑~/.vimrc文件,加上如下几行即可: set fileencodings=utf-8,ucs-bom,

  • avatar leon201903091654136 2021-01-09 23:07:31

    filezilla 严重文件传输错误 550permission denied

    问题描述: FileZilla工具使用ftp账户,密码,端口21,快速链接到自己搭建的外网ftp服务器,提示登录成功,选择本地文件,右键文件上传,响应:550 Permission denied, 错误:严重文件传输错误,截图如下: 图片

  • avatar leon201903091654136 2021-01-09 23:07:53

    桥接网络设置

    1.先停止Network-manager的服务 sudo service network-manager stop 2.用ifconfig查看网卡,这里为ens33 3.设置IP和子网掩码 sudo ifconfig ens33 192.168.10.163 netmask 255.255

  • avatar leon201903091654136 2021-01-09 23:08:13

    如何更改源地址

    直接编辑:sudo /etc/apt/sources.list文件 deb http://源地址/ubuntu/ xenial main universe restricted multiverse deb http://源地址/ubuntu/ xenial-updates main uni

  • avatar leon201903091654136 2021-01-09 23:08:34

    虚拟机下Linux桥接模式联网步骤

    目标:ubuntu16.04 网络静态IP配置,桥接模式,使它能够连网。 前提:周边有路由器,你知道它的网关,它可以给你PC端分配IP,也可以给你虚拟机端分配IP,如果你是校园网,只有一条网线,那么设置为NAT模式就可以了。 步骤: 1 打开虚拟网络编辑器

  • avatar leon201903091654136 2021-01-09 23:08:58

    Markdown语法

    图片发自简书App 图片发自简书App 图片发自简书App 图片发自简书App

  • avatar leon201903091654136 2021-01-09 23:09:27

    一文读懂汉明码

    海明码(也叫汉明码)是具有一位纠错能力的编码方式。在软考中经常涉及,教材讲的又太过公式话,下面我边讲解边举例让大家一文搞懂弄清到底什么是汉明码。 编码 1.确定校验码的位数x 设数据有n位,校验码有x位。则校验码一共有 2^x 种取值方式。其中,除了需要一种取值方式表示数据正确外,剩下2^x

  • avatar leon201903091654136 2021-01-09 23:09:48

    聊聊SPOOLing技术

    SPOOLing系统组成 由上所述得知,SPOOLing技术是对脱机输入、输出系统的模拟。相应地,SPOOLing系统必须建立在具有多道程序功能的操作系统上,而且还应有高速随机外存的支持,这通常是采用磁盘存储技术。 SPOOLing系统主要有以下三部分:

  • avatar leon201903091654136 2021-01-09 23:10:09

    Cache-主存效率问题

    本文主要明确在软考中经常遇到的缓存效率问题。 第零,明确一个问题: 如果Cache不命中时,不同的系统有不同的应对策略。一是直接从主存中拿走待取数据,它的时间消耗仅仅是一个访问主存周期。二是把待取数据先拿回Cache,然后再从Cache中取走数据。而它的时间消耗不仅是一个主存周期,还包括一个访问

  • avatar leon201903091654136 2021-01-09 23:10:30

    一文知晓CRC码计算及校验原理

    奇偶校验码(PCC)只能校验一位错误,而循环冗余校验码(CRC)的检错能力更强,可以检出多位错误。 1. CRC校验原理 CRC校验原理看起来比较复杂,好难懂,因为大多数书上基本上是以二进制的多项式形式来说明的。其实很简单的问题,其根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验的校验

  • avatar leon201903091654136 2021-01-09 23:10:53

    最全详解关键路径法

    关键路径法是软考的知识点,我分析了常见的模棱两可的知识点,并进行了图解说明,现在分享给正在准备参加软考试的广大考友。 01什么是关键路径法CPM? 关键路径法用于在进度模型中估算项目最短工期,确定逻辑网络路径的进度灵活性大小。这种进度网络分析技术在不考虑任何资源限制的情况下,沿进度网络路径使用顺

  • avatar leon201903091654136 2021-01-09 23:11:20

    实用Linux高级命令篇

    一、实用的 xargs 命令 在平时的使用中,我认为 xargs 这个命令还是较为重要和方便的。我们可以通过使用这个命令,将命令输出的结果作为参数传递给另一个命令。 比如说我们想找出某个路径下以 .conf 结尾的文件,并将这些文件进行分类,那么普通的做法就是先将以 .conf 结尾的文件先找出

  • avatar leon201903091654136 2021-01-09 23:11:40

    不知道这些命令,别说你会Linux

    线上查询及帮助命令 (2 个) man 查看命令帮助,命令的词典,更复杂的还有 info,但不常用。 help 查看 Linux 内置命令的帮助,比如 cd 命令。 文件和目录操作命令 (18 个) ls 全拼 list,功能是列出目录的内容及其内容属性信息。 cd 全拼 chan

  • avatar leon201903091654136 2021-01-09 23:12:01

    2019软考之嵌入式系统设计师带你复习2

    今天和大家来聊聊 嵌入式系统需求分析与体系结构设计的一些基础知识: 1.1软件需求分析 1.1.1 关于选择裸机开发还是基于实时操作系统 一是采用在裸机上直接开发的方式,且关键部分采用汇编语言编写,可以保证该控制系统的实时性; 二是由于该软件系统由多种周期的处理任务组成,采用商用嵌入

  • avatar leon201903091654136 2021-01-09 23:12:25

    你所不知道的编译器的由来

    来源:伯乐在线,作者:Chaobs 当今几乎所有的实用的编译器/解释器(以下统称编译器)都是用C语言编写的,有一些语言比如Clojure,Jython等是基于JVM或者说是用Java实的,IronPython等是基于.NET实现的,但是Java和C#等本身也要依靠C/C++来实现,等于是间接调用了

  • avatar leon201903091654136 2021-01-09 23:12:49

    2019软考之嵌入式系统设计师带你复习1

          亲爱的小伙伴们,好久没有更新文章了。最近很多网友在知乎留言说,2019年软考嵌入式系统设计师马上就要开考了,希望我能够推出系列重点知识串讲,以帮助大家顺利通过考试。所以就有了今天的这片文章。 一、嵌入式系统基础知识(上) 1、嵌入式系统的定义 (1)定义: 以应用为中心,以计算机

  • avatar leon201903091654136 2021-01-09 23:13:10

    基于STM32平台的实时操作系统

    基于STM32平台且满足实时控制要求操作系统,有以下5种可供移植选择,分别为μClinux、μC/OS-II、eCos、FreeRTOS和都江堰操作系统(djyos)。 下面分别介绍这五种嵌入式操作系统的特点及不足。 1、μClinux μClinux是一种优秀的嵌入式Linux版本,其全称为

  • avatar leon201903091654136 2021-01-09 23:13:51

    浅谈五级页表

    远在 2005 年年初的时候,在 2.6.10 的基础上合入四级页表补丁的工作是一次基于(当时)新的内核开发模式的早期尝试。它表明在社区的合作努力下完全有能力针对一些核心模块进行快速修改并发布给用户,而这在 2.6.0 版本之前是一件难以想象的事情,那时一个重大功能的更新需要经过多轮发布,而这往往需

  • avatar leon201903091654136 2021-01-09 23:14:12

    给你的Vim加个速

    Vim 是 Linux 下的常用文本编辑器,但也经常被称为是一个上古神器,因为它对于初学者而言相当不友好,也不好入门。 但是,对于高手而言,他们不仅将 Vim 玩得很溜,而且还将它当作代码开发的主要工具。为什么?因为 VS 等 IDE 比较庞大,运行起来比较慢,而 Vim 就相当轻量了,瞬间就能打

  • avatar leon201903091654136 2021-01-09 23:14:33

    创建虚拟磁盘

    1.1 dd 命令简介(部分说明来自dd (Unix) wiki) dd命令用于转换和复制文件,不过它的复制不同于cp。之前提到过关于 Linux 的很重要的一点,一切即文件,在 Linux 上,硬件的设备驱动(如硬盘)和特殊设备文件(如/dev/zero和/dev/random)都像普通文件一样

  • avatar leon201903091654136 2021-01-09 23:14:53

    嵌入式C语言编程小技巧

    流水线被指令填满时才能发挥最大效能,即每时钟周期完成一条指令的执行(仅指单周期指令)。如果程序发生跳转,流水线会被清空,这将需要几个时钟才能使流水线再次填满。因此,尽量少的使用跳转指令可以提高程序执行效率,解决发案就是尽量使用指令的“条件执行”功能。 在LPC2200系列中,可以通过过下面的

  • avatar leon201903091654136 2021-01-09 23:15:14

    冒号:在linux bash中的各种用法

    1.空命令 等价于“NOP”(no op,一个什么也不干的命令)。也可以被认为与shell的内建命令true作用相同。“:”命令是一个bash的内建命令,它的退出码(exit status)是(0)。 如: #!/bin/bash while : do echo "endl

  • avatar leon201903091654136 2021-01-09 23:15:37

    巧用ls命令

    在Linux下,ls这个命令大家肯定太熟悉了,笔者相信只要是Linux工程师,每天都会离不开这个命令,而且一天会使用个几百次。 但是,除了ls -l以外,你还知ls的哪些高级用法呢?笔者今天为大家介绍ls命令的8种高级用法。 假如我们有这样的一个文件夹,我们用tree命令查看它的目录结构: 用

  • avatar CirnoWei 2021-01-09 23:15:56

    根据标识排序整型数组

    要注意的是,Array.sort()是可以排序int[]类型的,但只能是默认升序;如果是想自定义Comparator降序,需要是包装类Integer[]才可以,所以在这里初始化直接使用Integer[]类型。 import java.util.*; public class Main {

    来自 CirnoWei
    00
  • avatar leon201903091654136 2021-01-09 23:15:57

    嵌入式C精华提炼1

    1、如何生成 "半全局变量", 就是那种只能被部分源文件中的部分函数访问变量? 答: 这在C语言中办不到. 如果不能或不方便在一个源文件中放下所有的函数, 那么有三种的解决 方案 : (1) 为一个库或相关函数的包中所有函数的包中的所有函数和全局变量增加一个唯一的前缀,

  • avatar leon201903091654136 2021-01-09 23:16:18

    不知道这些,别说你是嵌入式工程师!

    预处理器(Preprocessor) 1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) 答: #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: #define 语法的基

  • avatar leon201903091654136 2021-01-09 23:16:39

    这些ARM基础知识你还不知道吗

    1 ARM中一些常见英文缩写解释 MSB:最高有效位; LSB:最低有效位; AHB:先进的高性能总线; VPB:连接片内外设功能的VLSI外设总线; EMC:外部存储器控制器; MAM:存储器加速模块; VIC:向量中断控制器; SPI:全双工串行接口; CAN:控制器局域网,一

  • avatar leon201903091654136 2021-01-09 23:16:59

    嵌入式必知基础算法

    算法(Algorithm):计算机解题的基本思想方法和步骤。 算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、

  • avatar leon201903091654136 2021-01-09 23:17:21

    嵌入式学习网站集合

    2.The First Stop for the Latest ICs and Components 非常好的关于微处理器,DSP,可以编程控制器资讯的网站,更新非常快。强烈推荐一些领导级别的人常去,了解行业动态!http://www.eeproductcenter.com/- 外文 3.Prog

  • avatar leon201903091654136 2021-01-09 23:17:42

    C避坑指南

    int型:绝对值在10^9范围内的整数都可以定义成int型。 long long型:如果long long型赋值大于2^31 -1的初值,则需要在初值后面加上LL,否则会编译错误。 float、double输入输出格式:使用printf("%f",c);语句时,%f是floa

  • avatar leon201903091654136 2021-01-09 23:18:03

    学习嵌入式的你~何去何从?

    内容整理自网络 如今,纵览整个互联网,非常缺乏从事嵌入式行业的前辈。当周围cs同学能精准判断出,自己毕业后所属公司和大致薪资,并为之努力时,嵌入式方向的学生却非常迷茫,也导致很多人转向cs。为什么从事嵌入式和电子行业的前辈们,很少谈及薪资? 掀开迷雾谈薪资 某位知乎匿名用户表示,创业第二年,盈

  • avatar leon201903091654136 2021-01-09 23:18:23

    C语言高级部分总结

    C语言高级部分总结 嵌入式ARM 3天前 信息来源于网络 一、内存大话题 1.0、内存就是程序的立足之地,体现内存重要性。 1.1、内存理解: 内存物理看是有很多个Bank(就是行列阵式的存储芯片),每一个Bank的列就是位宽 ,每一行就是Words,则存储单元数量=行数(words)×

  • avatar leon201903091654136 2021-01-09 23:18:44

    如何学习C语言?

    很多刚入职的新人,都喜欢问一个类似的问题:“如何学习……?”,然后一些朋友就会给拷贝一大堆书籍资料,更热心的还会指导先看哪本在看哪本。 但不幸的事,很多时候就截至于此了,一大堆资料依然静静的躺在电脑硬盘里,只是在偶然的情况下才会打开翻看两眼目录。 走过一些企业,培训体系一般是这样的: 1

  • avatar leon201903091654136 2021-01-09 23:19:05

    嵌入式岗位分析

    找一个好工作,谈一份好薪水详细这也是大部分人的心愿,那么嵌入式行业该如何规划呢?下面我们从几方面来深入探讨。 1了解嵌入式行业 嵌入式系统的应用已经覆盖到我们的生产、工作和生活的各个方面。小到智能家电,手机,电子书,大到从航天飞机、载人飞船,到水下核潜艇等等这些都有嵌入式系统和嵌入式技术的应用。

  • avatar leon201903091654136 2021-01-09 23:19:26

    一文精通linux grep命令

    01 简介 在平时开发过程中,难免会查看生产日志去追踪问题原因。在海量日志中去查到我们想要的日志就无法避免使用grep命令。 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是

  • avatar leon201903091654136 2021-01-09 23:19:46

    电路板设计误区

    误区一:成本节约 常见错误1:面板上的指示灯选什么颜色呢?我个人比较喜欢蓝色,就选它吧。 正解:对于市面上的指示灯,红绿黄橙等颜色的,不管大小(5MM以下)、封装如何,都已成熟了几十年,所以价格便宜一般都在5毛钱以下。而蓝色指示灯却是近三四年才发明出来的,技术成熟度和供货稳定度都较差,所以

  • avatar leon201903091654136 2021-01-09 23:20:07

    嵌入式系统学习进阶

    1、Linux 基础 安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解 熟悉Linux服务能够独立安装Linux操作系统 能够熟练使用Linux系统的基本命令 认识Linux系统的常用服务安装Linux操作系统 Linux基本命令实践 设置Li

  • avatar leon201903091654136 2021-01-09 23:20:30

    我在华为写代码

    回首过去这半年,软件总工、软件专家的任命,还有新年伊始任总《全面提升软件工程能力,打造可信的高质量产品》的发文,都让我们这些写了十多年代码的软件工程师激动不已。我2006年进入公司,几乎参与了华为3G控制器产品的完整生命周期,见证了华为3G从起步、上升、灵魂深处的改进、巅峰、回落的波澜壮阔历程,并在

  • avatar leon201903091654136 2021-01-09 23:20:51

    嵌入式未来发展

    半导体公司的并购、IoT和AI热潮驱动嵌入式技术向安全、低功耗和互联的方向发展,AI和IoT 将越来越多呈现“一体化”趋势,“人工智能”逐渐向“应用智能”发展,物联网也将会向“智联网”发展。 1 半导体行业的并购 全球半导体行业的并购是从2015年开始提速,到了2016年发展到顶峰,之后逐渐回落

  • avatar leon201903091654136 2021-01-09 23:21:11

    blog to live,do not love to blog

    用朋友圈去记录生活,别为了记录去活在朋友圈。 你真的不必证明给任何人看,不发朋友圈的人,可以自得其乐,发朋友圈的人,也可能不那么幸福。 希望你是真的过得好,不是只在朋友圈里,看着不错。 1 最近看到蔡康永的一段采访视频,说的是自己微信朋友圈里的艺人百态。 情商大师聊起如今朋友圈的怪象,也是

  • avatar leon201903091654136 2021-01-09 23:21:32

    浮点数转换为新类型时必须做范围检查

    在C语言中,数据类型转换一般可分为隐式转换和显式转换,也称为自动转换和强制转换。其中,常见的隐式转换有4种,如下所示。 1)一般算术转换:通过某些运算符将操作数的值从一种类型自动转换成另一种类型,这一规则为“由低级向高级转换",

  • avatar leon201903091654136 2021-01-09 23:21:57

    分享点干货

    分享点干货 TTL电平: TTL是Transistor-Transistor Logic,即晶体管-晶体管逻辑的简称,它是计算机处理器控制的设备内部各部分之间通信的标准技术。TTL电平信号应用广泛,是因为其数据表示采用二进制规定,+5V等价于逻辑"1",0V等价于逻辑&quo

  • avatar leon201903091654136 2021-01-09 23:22:22

    基础C语言知识串串香14☞增补知识

    十、增补知识 10.1、一个字节可以表示8位字符,字符真的有256种,128~255表示西欧字符,是不常见,详情见文档。字符相加的时候,会自动转成int型加。 10.2、在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed)char与unsigned char之

  • avatar leon201903091654136 2021-01-09 23:22:44

    基础C语言知识串串香13☞一些杂散但值得讨论的问题

    八、一些杂散但值得讨论的问题 8.1、操作系统的理解: <1>它是一个管理阶级者,管理所有资源,负责调配优化等操作。这样想象,就像裸机一样的话,要实现LED闪烁的进程、串口传输的进程、蜂鸣器等这些,他们都要抢占一些资源,这个时候没有操作系统,就乱成一锅粥,当有了OS的时候,它就专门负

  • avatar leon201903091654136 2021-01-09 23:23:05

    基础C语言知识串串香12☞存储类&作用域&生命周期&链接属性

    七、存储类&作用域&生命周期&链接属性 7.1、概念词:存储类(栈、堆、数据区、.bss段、.text段) 作用域(代码块作用范围,也就是变量作用的范围) 生命周期(变量的诞生和死亡) 链接属性(外链接属性、内链接属性、无连接属性) 7.2、Linux下的内存映射(分配情

  • avatar leon201903091654136 2021-01-09 23:23:26

    基础C语言知识串串香11☞宏定义与预处理、函数和函数库

    六、C语言宏定义与预处理、函数和函数库 6.1、编译工具链 源码.c->(预处理)->预处理过的.i文件->(编译)->汇编文件.S->(汇编)->目标文件.o->(链接)->elf可执行程序。 预处理用预处理器,编译用编译器,汇编用汇编器,链接

  • avatar leon201903091654136 2021-01-09 23:23:47

    基础C语言知识串串香10☞数组&字符串&结构体&联合体&枚举

    五、数组&字符串&结构体&联合体&枚举 5.1、c语言中定义一个字符串:char a[6]={'l','i','n','u','x','\0'};'\0'的字符编码为0就是NULL;也就是说内存中遇到0,翻译成字符是就是'\0',或是NULL; char a[6]

  • avatar leon201903091654136 2021-01-09 23:24:08

    基础C语言知识串串香9☞C语言复杂表达式

    文章参考微信公众号[嵌入式软件学习圈] 四、C语言复杂表达式 4.1、在表达式中,要看符号的优先级和结合性。 4.2、在理解内存时,内存0地址在最底下,至上地址逐渐增加。 4.3、int *p;是定义的一指针变量p,而int (*p)[4];也是一个指针变量p;也可以这样想:凡是遇到(*

  • avatar leon201903091654136 2021-01-09 23:24:30

    基础C语言知识串串香8☞指针精髓

    三、指针精髓 3.1 printf("%p\n"); 其中%p表示输出一个指针,就是指针变量(其存放的那个地址),可以理解为输出一个地址。 3.2 int *p1, p2; 等同于int *p1; int p2;  int *p="Linux",其不能改变*P,因为”linu

  • avatar leon201903091654136 2021-01-09 23:24:51

    基础C语言知识串串香7☞位操作

    文章参考微信公众号[嵌入式软件学习圈] 二、位操作 2.1 ~(0u)是全1; 2.2 位与& 位或 | 位取反~ 位异或^ 2.3、位与、位或、位异或的特点总结: 位与:(任何数,其实就是1或者0)与1位与无变化,与0位与变成0位或:(任何数,其实就是1或者0)与1位或变成1