- 博客(104)
- 资源 (13)
- 收藏
- 关注
原创 网络单线复用vlan设置及iptv卡顿看不了直播的解决
房间只布了1根网线,现在光猫iptv和上网要共用这根网线,需要用到vlan管理型交换机。这里使用了2台水星S105 pro千兆管理型交换机。通过配置802.1q vlan来隔离2路网络。端口1用于iptv端口2用于上网端口5用于连接汇聚的那根网线端口3-4配置如下:...
2020-11-29 17:31:01 17220 10
原创 设置tortoiseGit拉代码去掉自动CRLF
window换行符CRLF,linux换行符LF,win拷贝到linux会编译出错。解决办法:设置如下,然后删掉本地代码重新拉新代码即可,新代码会看到换行符变为了LF
2020-09-29 16:11:53 2541
原创 Virtualbox虚拟Ubuntu共享文件夹设置
# 虚拟机--设备--安装增强功能如果安装报错, 找到光驱图标,把光盘Eject。在次重复之前操作。会看到自动启动一个终端,自动安装。# 设置好虚拟机的 共享文件夹#linux中手动挂载:mkdir /mnt/sharesudo mount -t vboxsf share /mnt/share其中 share改成你设置的共享文件夹的名字,/mnt/share是linux...
2018-07-16 18:44:34 1393
原创 SpiFlash同步/异步读写单片机裸机实例
单片机裸机开发中会经常遇到外设速度过慢,长时间读忙等待,但CPU又不能长时间阻塞的问题。这种问题可以通过实现一个状态机来异步处理。异步状态机代码结构示例:enum{ eIDLE = 0, eSTART, eWAIT, eSUCCESS};static uint8_t stage = 0;//启动异步处理 void DoSomethingRequest(){
2017-11-23 16:58:22 2466 6
转载 对 jiffies 溢出、回绕及 time_after 宏的理解
转载地址:http://blog.csdn.net/dlutbrucezhang/article/details/9919453关于jiffies变量: 全局变量jiffies用来记录自启动以来产生的节拍的总数。系统启动时会将该变量初始化为0,此后,每当时钟中断产生时就会增加该变量的值。jiffies和另外一个变量息息相关:HZ。HZ是每秒系统产生的时钟中断次数,所以jiffi
2017-11-23 15:50:32 757
转载 匈牙利命名法(全)
匈牙利命名法(全)匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。它是由微软内部的一个匈牙利人发起使用的,结果它在微软内部逐渐流行起来,并且推广给了全世界的Windows开发人员。下面将介绍匈牙利命名法,后面的例子里也会尽量遵守它和上面的代码风格。还是那句话,并不是要求所有的读者
2017-10-28 09:25:06 14152
转载 笔试题strcpy写法
[精华] 出现频率最高的笔试题strcpy写法http://www.chinaunix.net 作者:HopeCao 发表于:2008-10-30 15:49:14【发表评论】 【查看原文】 【C/C++讨论区】【关闭】题目: 已知strcpy函数的原型是: char * strc
2017-07-06 10:48:39 568
转载 xargs详解
Xargs用法详解(原创)博客分类: Shell 简介之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:这个命令是错误的find /sbin -perm +700 |ls -l这样才是正确的find /sbin -perm +700 |xargs ls -l
2017-06-14 10:16:24 461
转载 Linux下Sniffer程序的实现
Linux下Sniffer程序的实现作者:Gianluca Insolvibile整理:Seal(永远的FLASH)出处:http://www.nsfocus.com日期:2003-04-02嗅探——Sniffer技术是网络安全领域里一项非常重要的技术!对于“Hacker”来说,他们可以以非常隐蔽的方式得到网络中传输的大量的敏感信息,如Telnet,ftp帐号和密码等等
2017-06-12 11:22:25 826
转载 判断IP及子网掩码是否合法(C语言实现)
http://blog.csdn.net/dxdxsmy/article/details/7237955工作中经常碰到IP及子网掩码是否合法的判断,虽然可以google出答案,还是整理下记录下来,以后用时方便。 一 原理1. IP合法关于IP地址的合法性验证很简单,方法也很多,比如字符串分解、正则表达式等。2. 子网掩码是
2017-05-22 11:20:41 15384 1
转载 Word2007文档中插入或删除分隔符、页码
我们在编辑WORD文档的时候会经常使用分隔符,今天来讲一下怎样在Word2007文档中插入或删除分隔符。工具/原料Word2007步骤/方法1在WORD2007中插入分隔符很简单,首先将光标定位到需要插入的分隔符地方。然后点击分隔符,再选择插入的符号,例如,选
2017-02-24 14:45:27 3213
转载 捕捉信号SIGSEGV并回溯栈帧backtrace
引出问题在嵌入式应用程序开发过程中,调试一直是个老大难问题 -- 由于环境的限制,当程序发生段错误时不能很好的定位到底是哪里出现了错误,如果在程序发生段错误时能够清晰明了地看到程序的栈帧链,那无疑是雪中送炭。本文就捕捉信号SIGSEGV并在该信号的处理函数中打印出函数栈帧链来帮助我们调试程序。本文的程序适合ARM和X86平台。回溯栈帧原理理解函数栈帧的布局后,那么自
2016-11-25 10:32:46 1981
原创 插拔串口,linux系统提示OOM异常,提示内存用尽Out of memory: Kill process
插拔串口serial,linux系统提示OOM异常,提示内存用尽并杀死进程的问题。SysRq : Manual OOM execution Out of memory: Kill process
2016-11-18 17:27:49 2772
原创 awk笔记
awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键",所以$1表示登录用户,$3表示登录用户ip,以此类推。awk应用实例:(1)查找指定进程PID,并kill进程。 # ps | awk '{ if($4 == "/us
2016-10-12 11:12:25 296
原创 通过shell脚本生成C代码例程
通过shell脚本生成C代码例程:#!/bin/shtarget=$1BUILDER_VERSION_BRANCH=${VERSION_BRANCH}BUILDER_VERSION_MAJOR=${VERSION_MAJOR}BUILDER_VERSION_MINOR=${VERSION_MINOR}BUILDER_VERSION_EXTRA=${VERSION_EXT
2016-08-16 10:29:06 1888
转载 sysinfo结构体
sysinfo结构体Linux中,可以用sysinfo来获取系统相关信息。Linux中,sysinfo是用来获取系统相关信息的结构体。函数声明和原型:#include int sysinfo(struct sysinfo *info);结构体信息:在Linux 2.3.16中,结构体的信息是(单位是字节):[cpp] view
2016-08-10 09:08:21 1119
原创 Makefile学习实例1
知识1:#在Makefile中书写在同一行中的多个命令属于一个完整的shell命令行,书写在独立行的一条命令是一个独立的shell命令行。#因此:在一个规则的命令中,命令行“cd”改变目录不会对其后的命令的执行产生影响。就是说其后的命令执行的工作目录不会是之前使用“cd”进入的那个目录。#如果要实现这个目的,就不能把“cd”和其后的命令放在两行来书写。而应该把这两条命令写在一行上,用分
2016-08-09 17:04:21 556
原创 net-snmp移植记录
移植目标:把net-snmp开源snmp软件移植到嵌入式linux系统中。1.编译源码net-snmp版本下载最新的net-snmp-5.7.3我们采取静态编译,通过LDFLAGS="-static"指定编译静态库,留给应用程序调用。CC=powerpc-e300c3-linux-musl-gcc指定交叉编译工具连。root@ubuntu:/home/gjt/net-s
2016-06-30 16:36:38 3166
转载 官方保留的特殊MAC地址
下面是官方保留的特殊MAC地址,收藏参考:转载:http://blog.csdn.net/shanzhiziIEEE Std 802.1D and IEEE Std 802.1Q Reserved AddressesGroup MAC address valueOrganizationusing the valueStanda
2016-01-12 17:29:28 3227
转载 __attribute((aligned(n)))与#pragma pack (n)详解
原文地址:http://blog.chinaunix.net/uid-25445243-id-2354324.html字节对齐的方式第一种形式:#pragma pack (n) //指定编译器按照n字节对齐每个变量或数据单元。#pragma pack () //取消自定义对齐方式。另一种方式:__attribute((aligned(n)))__attribute
2015-10-09 19:32:52 3250
原创 linux驱动编程的makefile文件编写与环境搭建
linux驱动编程的makefile文件编写:# 模块被编译时会前后两次进入该目录进行编译。# 在该目录下(即模块所在的目录)执行make命令时,第一次根据该Makefile# 进行编译,此时KERNELRELEASE变量的值为空,所以ifeq条件成立。# KERNELRELEASE是在内核源码树的顶层Makefile中定义的一个变量,其值为# 内核的版本号。ifeq ($(KERN
2015-10-05 03:13:43 826
转载 新版UBOOT启动流程
转载请注明地址:http://blog.csdn.net/zsy2020314/article/details/98240351.关于启动流程1.1 启动阶段分为3个,bl0,bl1,bl2。下面只是就功能方面对它们做说明,实际设计的时候,也许会对其具体功能做出调整,也就是说,这几个阶段的划分是就功能而言的,不能看得太死。 bl0:出厂的时候就固化在irom中一段
2015-10-04 22:49:15 3663
原创 uboot串口与标准输入输出代码详解
这里我们来分析下uboot串口设备初始化和串口stdio标准输入输出设备的初始化过程。一、display_banner与print_cpuinfouboot从启动开始,第一句打印就是调用display_banner,打印出我们期待已久的“U-Boot 2012.10-xxxx”信息。接着调用print_cpuinfo打印出cpu信息。const char version_string[] = U_B
2015-09-23 17:52:37 7725
转载 左值的定义和i++,++i
转载:http://blog.csdn.net/zlhy_/article/details/8349300算下来已经很久以前了,大概有那么几个星期了吧。看到了帖子上有人问为什么下面的语句的对错原因int i = 0;int *ip = &(i++); //错误int *ip = &(++i); //正确看到上面的语句,当时以为两个都是是对的啊,可是当我用
2015-09-17 22:26:25 692
原创 contiki_protothread源码
contiki_protothread下载地址:http://dunkels.com/adam/pt/download.html/* * Copyright (c) 2004-2005, Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and bin
2015-08-22 15:47:27 956
原创 一个最简单的CLI命令行界面实现
#include "system.h"#include "utils/ui.h"#include "appl/cli.h"/*cli命令行界面,一共可以注册MAX_CLI_COMMANDS 个命令,命令名字可以是[A-Z,a-z,0-9]的某个字母。运行效果:CMD> F - Flash utilities f - Write factory mac address n - W
2015-07-25 15:17:48 5015
原创 裸机驱动模板
编写裸机驱动,一般都比较随意。这通常导致代码不统一,移植性差。本例以SPI FLASH来分析一种优秀的裸机驱动编写模板。 1. 首先定义一个设备类。 /* *flash device class */typedef struct flash_dev_s{ const struct flash_dev_funs *funs; /* F
2015-07-25 10:48:56 893
原创 spi flash驱动代码分析(二)
一、spi flash裸机驱动代码void W25q64_Init(void){ ......}/******************************************************************************** Function Name : W25q_ReadWriteByte * Description : W2
2015-07-19 12:37:19 3292
原创 spi flash驱动代码分析(一)
一、 spi_flash uboot驱动的一个应用实例1. spi应用程序在操作之前调用spi_flash_probe去初始化spi_flash2. 初始化完毕即可读写spi flashvoid spl_spi_load_image(void){ //初始化SPI FLASH flash =spi_flash_p
2015-07-17 18:19:37 12679
原创 利用/dev/mem实现用户空间驱动
/dev/mem是物理内存的全映像,可以用来访问物理内存,一般用法是open("/dev/mem",O_RDWR|O_SYNC),然后mmap,接着就可以用mmap的地址来访问物理内存,这实际上就是实现用户空间驱动的一种方法。它的好处参见博文:http://blog.csdn.net/gujintong1110/article/details/46684589#include #in
2015-07-15 10:57:09 1670
转载 开关中断与cpsid/cpsie指令
开关中断与cpsid/cpsie指令在汇编代码中,CPSID CPSIE 用于快速的开关中断。CPSIDI;PRIMASK=1,;关中断CPSIEI;PRIMASK=0,;开中断CPSID
2015-07-13 22:24:10 2413
原创 基于ucosii+x86pc的俄罗斯方块源码
闲着没事,写的俄罗斯方块。运行于ucosii+x86pc。/**description: 基于ucosii+x86pc的俄罗斯方块*create data: 2015.7.12*author: jalen_king*/#include "includes.h"#ifndef NULL#define NULL 0#endif#ifndef TRUE #define T
2015-07-12 13:58:10 1480
原创 多维数组的指针类型转换和参数传递
总结: 一维和多维数组的数组名,是一个指针,这个指针指向的是该数组的第一个“元素”。例1: char *p0; char buf0[2] = {1}; p0 = buf0;char *p0; 表示定义一个指向char型的指针。便于理解可以写成char (*p0); *p0是指针,指向 char类型。例2: char (*p1)[4]; char
2015-07-10 11:05:15 1080
转载 利用mmap /dev/mem 读写Linux内存
使用 hexedit /dev/mem 可以显示所有物理内存中的信息。 运用mmap将/dev/mem map出来,然后直接对其读写可以实现用户空间的内核操作。以下是我写的一个sample[cpp] view plaincopy#include #include #include #include #include
2015-06-29 17:26:56 5152
转载 通过printf设置Linux终端输出的颜色和显示方式
通过printf设置Linux终端输出的颜色和显示方式转载自:http://www.cnblogs.com/clover-toeic/p/4031618.html 在Linux终端下调试程序时,有时需要输出大量信息。若能控制字体的颜色和显示方式,可使输出信息对比鲜明,便于调试时观察数据。 终端的字符颜色由转义序列(Escape Sequence)控制,是文本模式
2015-06-29 11:52:30 602
转载 Linux终端配置输入输出(termios)函数
termios系列函数-tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfsetspeed等,用以获取/设置终端设备的属性/控制/速度。1. 函数声明函数声明#include #
2015-06-29 11:47:00 1713
转载 C语言宏定义中的字符串替换
## 是连接符号,连接两个字符串#是把名字代替成参数中的字符串#define PRINTF(value) printf( #value " = %d/n", value );#define FUNC(arg)void print##arg(void) { printf(#arg " = %d", arg);}FUNC(size);
2015-06-28 21:10:51 2631
原创 74HC595供电与逻辑电平选择不当导致输出异常
最近在调74HC595,单片机IO直连控制74HC595,单片机输出3.3v, 而74HC595是5.5v供电。发现74HC595输出时好时坏,不正常。解决:把74HC595的供电改为3.3v就OK了。网上查了下,说74HC595供电降到4.5v以下就可以了。可能跟芯片内部具体硬件实现有关,一般情况下,TTL电平电压范围,规定输出高电平>2.4V,输出低电平
2015-05-16 22:26:01 10156 1
原创 printf写入标出输出的缓冲区刷新条件
printf缓冲区刷新条件: 1 缓冲区填满 2 写入的字符中有‘\n’ '\r' 3 调用fflush(stdout)手动刷新缓冲区 4 调用scanf要从缓冲区中读取数据时,也会将缓冲区内的数据刷新 printf为例,在printf的实现中,在调用write之前加入了IO缓冲区,这是一个用户空间的缓冲,首
2015-05-15 15:08:13 2323 1
freescale imx bootlets bootstream elftosb介绍
2015-10-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人