自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(323)
  • 收藏
  • 关注

原创 Emacs快捷键

一.快捷键介绍二.窗口调整三.列编辑。

2024-02-29 17:46:42 421

原创 makefile之创建依赖关系

gcc 选项: -M: 自动找寻源文件中包含的头文件,生成文件关联的信息。包含目标文件所依赖的所有源代码; -MD: 功能同上,并将生成的依赖信息保存到.d文件中 -MM: 它功能同-M,但它会忽略#include<file>造成...

2019-08-30 10:52:30 1019

原创 URL

前言:    做嵌入式软件开发也快四年了,突然私下想玩玩web端的开发,本笔记仅此用来记录下学习的路程。。。。目录:一.URL定义二.URL语法三.URL相关举例四.参考文档 一.URL定义    Uniform Resource Locators,the syntax and semantics for a compact string  representa...

2018-08-30 10:25:47 549

转载 scp

scp复制文件到指定端口1.scp基本格式scp file user@host:/dir 2.scp复制文件到指定端口scp默认连接的端口是22端口,如果ssh不是使用标准的22端口则使用-P(P大写)指定:scp -P 16022 file user@host:/dir 3.从远端主机将文件复制到另一台远端主机scp不仅可以将文件从本机复制到远端机器,还可...

2018-08-30 10:25:27 2082

转载 SaaS、PaaS、LaaS以及之间的区别

本文转自:https://blog.csdn.net/aym_fuhong/article/details/52809124虽然云计算的服务模式仍在不断进化,但业界普遍接受将云计算按照服务的提供方式划分为三个大类:SaaS(Software as a Service–软件即服务) PaaS(Platform as a Service–平台即服务) IaaS(Infrastructure as a ...

2018-06-04 10:15:34 1710

转载 网络编程中的超时检测

我们在网络编程中常见的一种做法是:创建好套接字后以阻塞的方式读写,如果没有数据可读的话,程序会一直等待。事实上,网络状况一直不断变化,很有可能在通讯过程中出现网络连接断开。我们在程序中有必要对这种情况进行检测,从而及时做出响应。下面介绍几种常用的超时检测方法(假设我们要求通过套接字等待数据的最大时间为8秒):一、 设置套接字接收超时setsockopt可以设置套接字的属性,其中包括

2017-04-23 17:14:03 1123

转载 git diff

本文转自:http://www.ruanyifeng.com/blog/2012/08/how_to_read_diff.htmldiff是Unix系统的一个很重要的工具程序。它用来比较两个文本文件的差异,是代码版本管理的基石之一。你在命令行下,输入:  $ diff diff就会告诉你,这两个文件有何差异。它的显示结果不太好懂,下面我就来说明,如何读懂d

2017-02-04 11:55:40 449

转载 用汇编实现浮点数的乘法运算---FPU

#include #include #define INIT_TIMER_VALIABLE \ struct timeval tpstart,tpend; \ float timeuse; #define START_TIMER gettimeofday(&tpstart,NULL);#define END_PRINTF_TIMER(name) \

2016-03-24 10:07:24 6795

原创 Cortex-M4之FPU

M4

2016-03-21 14:53:35 7430 1

原创 低功耗广域网络中的LoRa技术

低功耗广域网络(Low Power Wide Area,LPWA)目前已经商业化的LPWA有:LoRa:物联网所需的各类无线网络通信技术似乎处于互补状态,在不同场景下,距离、功耗、容量、成本等指标各有千秋。不过,在远距离、低功耗场景下LoRa(Long Range,远程)技术正迅速发展起来。  LoRa是由升特公司(Semech)发布的一种专

2016-03-02 14:24:21 2469

原创 又学了几个emacs快捷键

C-c C-c        :注释多行M-;         :在所在的行后面加注释M-/        :代码自动完成find-function    :查看Emacs函数的代码。M-x find-function。find-variable    :查看变量的代码。C-h ?        :得到关于帮助的完整列表M-x apropos

2015-12-02 10:08:16 1951

原创 标准的I / O流和文件描述符相互关联(文件描述符与文件指针间的转换)

表头文件:#include定义函数:FILE * fdopen(int fildes,const char * mode);说明:fdopen()会将参数fildes 的文件描述词,转换为对应的文件指针后返回。fdopen取一个现存的文件描述符,并使一个标准的I / O流与该描述符相结合。此函数常用于由创建管道和网络通信通道函数获得的描述符。因为这些特殊类型的文件不能用标准I/

2015-11-10 09:53:19 1773

转载 linux下编译动态链接库

我们预备的demo的文件组成1.testa.c[cpp] view plaincopy#include   void Test_a()  {    printf("This is Test_a!");  }  2. testb.c[cpp] view plaincopy

2015-10-28 11:45:37 851

转载 端口号扫描工具---nmap

Nmap(Network Mapper)是一款开放源代码的网络探测和安全审核工具。它用于快速扫描一个网络和一台主机开放的端口,还能使用TCP/IP协议栈特征探测远程主机的操作系统类型。nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和nul

2015-10-23 16:14:57 7380

转载 Ubuntu系统进程绑定CPU核

本文讲述如何在Ubuntu系统中,把指定的进程绑定到指定的CPU核运行。而通常是由操作系统负责管理进程和线程的调度,但是这种情况下是不清楚由哪个CPU核运行你的进程,因为操作系统的调度是基于资源的可用性进行判断的。可以这样,把指定的CPU核绑定到你的进程。taskset -cp 下面用一个简单的例子来说明怎样做到。例如:运行以下命令,把此

2015-08-11 09:12:18 1174

转载 htop: 比top好用的Linux进程管理监控工具

1. htop简介Htop是一款运行于Linux系统监控与进程管理软件,用于取代Unix下传统的top。与top只提供最消耗资源的进程列表不同,htop提供所有进程的列表,并且使用彩色标识出处理器、swap和内存状态。用户一般可以在top无法提供详尽系统信息的情况下选择安装并使用htop。比如,在查找应用程序的内存泄漏问题时。与top相比,htop提供更方便、光标控制的界面来杀死进程。

2015-08-11 09:05:11 1528

原创 linux中内核延时函数

第一类延时函数原型是:(忙等)void ndelay(unsigned long nsecs);void udelay(unsigned long usecs);void mdelay(unsigned long msecs); 说明:内核函数 ndelay, udelay, 以及 mdelay 对于短延时好用, 分别延后执行指定的纳秒数, 微秒数或者毫秒数. 它们涉及到的延时常常

2015-08-07 08:46:49 25251

转载 linux下的小工具和小常识

一、linux下 查看系统信息命令:# uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod

2015-07-20 14:14:12 623

转载 Alignment trap

“Alignment trap”:遇到字节对齐的问题,直译意思为“对齐陷阱”。 Linux下对Alignment trap的处理有下面几种方式:(cat /proc/cpu/alignment) 0 (ignored) 1 (warn) 2 (fixup) 3 (fixup+warn) 4 (signal) 5 (signal+warn)我的嵌入式linux系统下的

2015-07-20 11:24:29 3758

转载 ARM寄存器

一、ARM寄存器:寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(

2015-06-23 14:39:52 6202

转载 PyQt + QML 快速开发GUI入门总结

本文转自:http://www.linuxzen.com/pyqt-qml-kuai-su-kai-fa-guizong-jie.html最近结束一个使用PyQt+QML开发的项目, 在此对一些经验做出总结分享出来. 结合QML确实可以快速的构建出GUI程序, 但是相关资料太少, 特别是中文资料, 而且坑太多, 特别是和后端PyQt结合的时候有很多莫名奇妙的问题. 这篇文章会总

2015-06-09 19:05:24 8767

转载 qt creator使用快捷键和自动补全功能的设置

1、Qtcreator中常用快捷键:F1        查看帮助F2        跳转到函数定义(和Ctrl+鼠标左键一样的效果)Shift+F2    声明和定义之间切换F4        头文件和源文件之间切换Ctrl+1         欢迎模式Ctrl+2        编辑模式Ctrl+3        调试模式Ctrl+4        项目设置模

2015-06-08 11:36:49 10264

转载 解决/usr/bin/ld: cannot find -lxxx

在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息:/usr/bin/ld: cannot find -lxxx 这些讯息会随着编译不同类型的source code 而有不同的结果出来如:/usr/bin/ld: cannot find -lc /usr/bin/ld: cannot find -llt

2015-06-03 11:55:56 1295

原创 给linux用户添加sudo权限

添加sudo权限方法: 需要在/etc/sudoers文件中添加想要条目以实现权限。 其添加有两种方法:(在root用户环境下运行的) 1:直接使用visudo(在root状态下),vim /etc/sudoers(首先要用root用户修改该文件的读写权限) 2:使用visudo命令修改 添加的位置:找到 root ALL=(ALL) ALL 后

2015-06-03 10:54:28 2258

转载 linux程序分析工具介绍—ldd,nm

本文要介绍的ldd和nm是linux下,两个用来分析程序很实用的工具。ldd是用来分析程序运行时需要依赖的动态库的工具;nm是用来查看指定程序中的符号表相关内容的工具。下面通过例子,分别来介绍一下这两个工具:1. ldd, 先看下面的例子, 用ldd查看cs程序所依赖的动态库:$ ldd cslinux-gate.so.1 => (0xffffe000)libz.so.1 =>

2015-05-28 17:24:37 875

转载 使用emacs

Emacs 启动:直接打emacs, 如果有X-windows就会开视窗. 如果不想用X 的版本,就用 emacs -nw      (No windows)起动.上下移动   C-p 向上 (previous line) C-n向下(next line)左右移动   C-f 向右 (forward) C-b 向左 (backward)翻页  下一页 C-v (

2015-05-22 10:02:11 547

原创 gdb调试的简单回顾

1. 查看寄存器(gdb) i r(gdb) i r a                     # 查看所有寄存器(包括浮点、多媒体)(gdb) i r esp(gdb) i r pc2. 查看内存(gdb) x /wx 0x80040000    # 以16进制显示指定地址处的数据(gdb) x /8x $esp(gdb) x /16x $esp

2015-05-20 10:56:59 1121

转载 调试宏定义

调试宏定义的方法:1:通过gcc -E 产生预编译后的源代码,所有的预编译动作都已完成,如头文件的插入,宏定义的展开example:#include stdlib.h>#include stdio.h>#define MACRO1(x) (++(x))#define MACRO2(x) (MACRO1(x)+100)#define MACRO3(x) (MACRO2(x)+200)i

2015-05-20 10:05:45 1066

转载 gdb查看内存地址和栈中的值

gdb查看指定地址的内存地址的值:examine 简写 x-----使用gdb> help x 来查看使用方式     x/ (n,f,u为可选参数) n: 需要显示的内存单元个数,也就是从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义 f:显示格式               x(hex) 按十六进制格式显示变量。               d(decima

2015-05-20 10:01:16 10235

原创 gdb查看内存区和寄存器i

一、用gdb查看内存格式: x /nfu说明x 是 examine 的缩写n表示要显示的内存单元的个数f表示显示方式, 可取如下值x 按十六进制格式显示变量。d 按十进制格式显示变量。u 按十进制格式显示无符号整型。o 按八进制格式显示变量。t 按二进制格式显示变量。a 按十六进制格式显示变量。i 指令地址格式c 按字符格式显示变量。f 按浮

2015-05-20 09:45:34 12715

转载 连接器脚本

今天在看uboot引导Linux部分,发现要对链接脚本深入了解,才能知道各个目标文件的内存分布映像,下面是我看到的一些资料0. Contents 1. 概论2. 基本概念3. 脚本格式4. 简单例子5. 简单脚本命令6. 对符号的赋值7. SECTIONS命令8. MEMORY命令9. PHDRS命令10. VERSION命令11. 脚本内的表达式

2015-05-17 10:35:46 1376

原创 system.map文件详解

有时system.map文件可以帮助我们理解内核编译,它记录了所有代码的运行地址。对于系统的oop消息、或者通过gdb的调试消息,都需要根据该对照表,将内核熟悉的函数地址转化为用户熟悉的函数名称,便于用户进行故障定位、运行监控。system.map内容格式为:线性地址 类型 符号符号类型.小写字母表示局部; 大写字母表示全局(外部). A The symbol's

2015-05-17 09:47:09 4020

原创 墙上时钟时间 ,用户cpu时间 ,系统cpu时间

一、 墙上时钟时间 ,用户cpu时间 ,系统cpu时间定义与联系时钟时间(墙上时钟时间wall clock time):从进程从开始运行到结束,时钟走过的时间,这其中包含了进程在阻塞和等待状态的时间。用户CPU时间:就是用户的进程获得了CPU资源以后,在用户态执行的时间。系统CPU时间:用户进程获得了CPU资源以后,在内核态的执行时间。   进程的三种状态为阻塞、就绪、运行

2015-05-11 15:54:59 2298

转载 Linux系统编程之错误处理:perror,strerror和errno

1,在系统编程中错误通常通过函数返回值来表示,并通过特殊变量errno来描述。errno这个全局变量在头文件中声明如下:extern int errno;errno是一个由POSIX和ISO C标准定义的符号,看(用)起来就好像是一个整形变量。当系统调用或库函数发生错误的时候,比如以只读方式打开一个不存在的文件时,它的值将会被改变,根据errno值的不同,我们就可以知道自己的程序发生了什么

2015-05-11 14:30:50 1355

原创 gdb调试技巧

使用命令:display 变量名跟踪查看某个变量,每次停下来都显示它的值undisplay 跟踪显示号取消跟踪显示info(或i) breakpoints查看当前设置了哪些断点例如:disable breakpoints 3(gdb) enable 3(gdb) i breakpoints (gdb) delete breakpoints gdb) br

2015-05-06 19:45:50 892

转载 如何判断路由器是否有公网IP,以进行远程通信

1:检查是否路由器是否有公网IP:在浏览器上登陆路由器的设置网页,在运行状态下,检查路由器的WAN口地址,检查WAN口地址是否为公网IP,例如下图IP是:123.232.174.21.2:在百度上输入IP,百度一下查询到的IP地址,将百度上查询到的IP地址与路由器的WAN口IP地址进行比较,查一下两个IP地址是否一致,如果一致,则路由器有公网IP。例如一

2015-05-05 15:18:49 7980

原创 Python之网络编程

一、套接字套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等)套件对上的网络应用程序提供者提供当前可移植标准的对象。它们允许程序接受并进行连接,如发送和接受数据。为了建立通信通道,网络通信的每个端点拥有一个套接字对象极为重要。套接字为BSD UNIX系统核心的一部分,而且他们也被许多其他类似UNIX的操作系统包括Linux所采纳。许多非BSD UNIX系统(如ms-d

2015-04-30 15:33:37 1230

原创 Python之异常处理

一、什么是异常?异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。二、异常处理捕捉异常可以使用try/except语句。try/except语句用来检测try语句块中的错误,从而让ex

2015-04-30 11:34:08 1198 1

原创 python之类方法的重载

Python类的特殊方法Python 类可以定义专用方法,专用方法是在特殊情况下或当使用特别语法时由 Python 替你调用的,而不是在代码中直接调用(象普通的方法那样)。.1    __init__类似于构造函数#!/usr/local/bin/pythonclass Study:        def __init__(self,name=None):       

2015-04-29 15:23:17 11539

转载 Python之类(Class)的学习

定义Python 的 Class 比较特别,和我们习惯的静态语言类型定义有很大区别。1. 使用一个名为 __init__ 的方法来完成初始化。2. 使用一个名为 __del__ 的方法来完成类似析购操作。3. 所有的实例方法都拥有一个 self 参数来传递当前实例,类似于 this。4. 可以使用 __class__ 来访问类型成员>>>>>> class MyCl

2015-04-29 15:03:24 680

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除