自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

skdkjxy的专栏

好好工作,努力挣钱~柱子

  • 博客(35)
  • 资源 (22)
  • 收藏
  • 关注

原创 嵌入式 问号表达式技巧小示例

需求:1、循环尝试不同的

2014-04-30 15:37:29 918

原创 嵌入式 tcp或者udp发包协议使用结构体注意事项

/**  recv broadcast run in the 3518c board **/#include #include #include #include #include #include #include #include #include #include   #ifdef SOLARIS#include #endi

2014-04-30 14:43:31 1195

原创 嵌入式 最精简的程序获取IP以及广播地址示例

#include#include#include#include#include#include#include#include#include#include #include int main(int argc, char *argv[]){ int inet_sock; struct ifreq ifr; //建立套接字 ine

2014-04-29 14:22:20 837

原创 嵌入式 Linux下进行广播包交互示例

服务器端也就是接受广播包:#include #include #include #include #include #include #include /**  广播接收端代码 **/#define IP_FOUND "IP_FOUND"#define IP_FOUND_ACK "IP_FOUND_ACK"#define PORT 9999i

2014-04-29 13:54:04 1851

原创 嵌入式 给字符串添加结束符

strcpy((buffer+strlen(buffer)),"\0");

2014-04-29 11:13:43 971

原创 嵌入式 获取网卡设备以及IP和MAC地址示例以及网络编程之ioctl小结

#include #include #include #include #include #include #include #include #ifdef SOLARIS#include #endif#define MAXINTERFACES   16main (argc, argv)register int argc;register c

2014-04-28 15:57:45 6943

原创 嵌入式 获取linux下的网卡的MAC地址

#includestdio.h>#include stdlib.h>#include string.h>#include errno.h>#include unistd.h>#include sys/socket.h>#include sys/ioctl.h>#include net/if.h>#include net/if_ar

2014-04-28 15:27:29 1603

原创 嵌入式 Linux下svn co时提示错误解决办法 - 'PROPFIND of 'path': 403 Forbidden以及批量删除“.svn”

错误提示:[root@rhel5 ~]# svn co  http://10.10.16.252/code_svn/xl_download/download_server/OperatorCorpProject/trunk/ip_lib/                                                      svn: PROPFIND request

2014-04-28 15:19:45 1381

原创 嵌入式 hi3518c驱动lowpower.sh加载注意事项修改完成针对USB设备的支持

脚本名称是:lowpower.sh

2014-04-27 18:28:42 1818

转载 嵌入式 start_kernel函数详解

如果以为到了c代码可以松一口气的话,就大错特措了,linux的c也不比汇编好懂多少,相反到掩盖了汇编的一些和机器相关的部分,有时候更难懂。其实作为编写操作系统的c代码,只不过是汇编的另一种写法,和机器代码的联系是很紧密的。 start_kernel在 /linux/init/main.c中定义: asmlinkage void __init start_kernel(void)

2014-04-25 22:12:52 2070

转载 嵌入式 uboot通过CMD_LINE传参给kernel以及kernel启动分析

Linux内核在启动的时候需要一些参数,以获得当前硬件的信息或者启动所需资源在内存中的位置等等。这些信息可以通过bootloader传递给内核,比较常见的就是cmdline。以前我在启动内核的时候习惯性的通过uboot传递一个cmdline给内核,没有具体的分析这个过程。最近在分析内核启动过程的时候,重新看了一下内核启动参数的传递过程,彻底解决一下在这方面的疑惑。 一、bootloader

2014-04-25 22:08:50 4852 1

转载 嵌入式 arm平台kernel启动第二阶段分析

接着上面的分析,第一阶段的代码跳转后,会进入第二阶段的代码。第二阶段的代码是从\arch\arm\kernel\head.S开始的。内核启动第二阶段主要完成的工作有,cpu ID检查,machine ID(也就是开发板ID)检查,创建初始化页表,设置C代码运行环境,跳转到内核第一个真正的C函数startkernel开始执行。这一阶段涉及到两个重要的结构体:(1) 一

2014-04-25 22:03:38 980

转载 嵌入式 arm平台kernel启动第一阶段汇编head.s分析

arm linux 内核生成过程 1. 依据arch/arm/kernel/vmlinux.lds 生成linux内核源码根目录下的vmlinux,这个vmlinux属于未压缩,带调试信息、符号表的最初的内核,大小约23MB; 命令:arm-linux-gnu-ld -o vmlinux -T arch/arm/kernel/vmlinux.lds  arch/arm/kernel

2014-04-25 22:02:12 1141

转载 嵌入式 内核启动流程小结

当内核映像被加载到RAM之后,Bootloader的控制权被释放。内核映像并不是可直接运行的目标代码,而是一个压缩过的zImage(小内核)。但是,也并非是zImage映像中的一切均被压缩了,映像中包含未被压缩的部分,这部分中包含解压缩程序,解压缩程序会解压缩映像中被压缩的部分。zImage使用gzip压缩的,它不仅仅是一个压缩文件,而且在这个文件的开头部分内嵌有gzip解压缩代码。当zImage

2014-04-25 22:00:37 1207

原创 嵌入式 在kernel中增加自己的驱动的顺序

内核的源码树目录下一般都会有两个文文:Kconfig和Makefile。分布在各目录下的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出配置菜单,用户配置完后保存到.config(在顶层目录下生成)中。在内核编译时,主Makefile调用这个.con

2014-04-25 21:48:04 898

原创 嵌入式 linux中的jiffies变量小结

全局变量jiffies用来记录自系统启动以来产生的节拍的总数。启动时,内核将该变量初始化为0,此后,每次时钟中断处理程序都会增加该变量的值。一秒内时钟中断的次数等于Hz,所以jiffies一秒内增加的值也就是Hz。   系统运行时间以秒为单位,等于jiffies/Hz。注意,jiffies类型为无符号长整型(unsigned long),其他任何类型存放它都不正确。将以秒为单位的时间转

2014-04-25 11:35:10 1681

转载 嵌入式 深入剖析Linux内核定时器实现机制

【摘要】本文详解了Linux内核的定时器实现机制。具体分析了定时器的分级组织结构,以及在此基础之上的插入、更新、扫描执行等过程。其动态刷新维护的机制值得借鉴。然后介绍了内核定时器相关的API。【关键字】内核定时器,分级结构,定时器迁移刷新,DEFINE_TIMER,init_timer,setup_timer,add_timer,mod_timer,del_timer1      

2014-04-25 11:30:12 1295

原创 嵌入式 Kernel中添加自定义定时器完成循环需要做的事情

首先我们在内核中添加自己的定时器代码:

2014-04-25 11:13:42 1050

原创 嵌入式 初识内核中EXPORT_SYMBOL宏

linux30的“/prob/kallsyms”文件对应着内核符号表,记录了符号以及符号所在的内存地址。模块可以使用如下宏导出符号到内核符号表:[c-sharp]view plaincopyprint?EXPORT_SYMBOL(符号名); EXPORT_SYMBOL_GPL(符号名) EXPORT_SYMBOL(符号名);EXPORT_SYM

2014-04-24 21:17:13 1055

转载 嵌入式 在uboot中添加硬件看门狗小示例

2Uboot添加硬件看门狗uboot中默认看门狗策略由两个宏CONFIG_HW_WATCHDOG和CONFIG_WATCHDOG来使能。此策略是在代码执行中的不同阶段,添加喂狗代码。这种喂狗方法会使代码很乱,uboot中到处都充斥的喂狗代码。另外这种方法对代码执行时间是敏感的,如果有段代码执行时间很长(如搬运code),则需要添加喂狗代码,很繁。uboot的默认策略比较适合

2014-04-24 10:40:39 3070

原创 嵌入式 uboot第二阶段启动流程小结以及在uboot添加自定义命令

uboot第一阶段分析完毕,根据第一阶段最后的分析,程序跳转到了ram中继续执行start_armboot这个函数。下面来看看这个函数主要完成了什么功能。首先要说明一个结构体,之前提到过,叫全局数据结构体,用于保存一些全局数据,在uboot第一阶段设置栈指针时,其实就已经为这个结构体在内存中留出了空间,它的地址就是在堆的地址下方,栈的上方。全局数据结构体定义如下所示:typedef

2014-04-24 10:40:20 1424

原创 嵌入式 hi3518c平台uboot中start.s小结

/*====================================Hi3518c start.S Begin 2014-04-20=============================================*//* *  armboot - Startup Code for ARM926EJS CPU-core * *  Copyright (c) 2003

2014-04-23 17:25:54 2820

原创 嵌入式 hi3518c内核start_kernel函数小议

我们先来看源码,有代码才有说服力哦:

2014-04-23 16:20:02 1310

转载 嵌入式 kernel调试方法小结

kdb:只能在汇编代码级进行调试;  优点是不需要两台机器进行调试。  gdb:在调试模块时缺少一些至关重要的功能,它可用来查看内核的运行情况,包括反汇编内核函数。  kgdb:能很方便的在源码级对内核进行调试,缺点是kgdb只能进行远程调试,它需要一根串口线及两台机器来调试内核(也可以是在同一台主机上用vmware软件运行两个操作系统来调试)printk() 是调试内核代码时最常

2014-04-23 16:01:45 4161

原创 嵌入式 uboot常见汇编指令小结

在嵌入式开发中,汇编程序常常用于非常关键的地方,比如系统启动时初始化,进出中断时的环境保护,恢复等对性能有要求的地方。ARM指令集可以分为六大类,分别为数据处理指令、Load/Store指令、跳转指令、程序状态寄存器处理指令、协处理器指令和异常产生指令。ARM指令使用的基本格式如下: 〈opcode〉{〈cond〉}{S}     〈Rd〉,〈Rn〉{,〈operand2〉}

2014-04-20 17:13:44 1697

转载 嵌入式 arm指令小结二

ARM指令系统特点ARM指令系统属于RISC指令系统。标准的ARM指令每条都是32位长,有些ARM核还可以执行Thmub指令集,该指令集是ARM指令集的子集,每条指令只有16位。1  数据类型ARM处理器一般支持下列6种数据类型:l8位有符号字节类型数据;l8位无符号字节类型数据;l16位有符号半字类型数据;l16位无符号半字类型数据;l32位有符号字类型数据;

2014-04-20 17:12:30 2379

转载 嵌入式 arm指令小结一

ARM处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令6大指令。一、跳转指令跳转指令用于实现程序流程的跳转,在ARM程序中有以下两种方法可以实现程序流程的跳转。Ⅰ.使用专门的跳转指令;Ⅱ.直接向程序计数器PC写入跳转地址值,通过向程序计数器PC写入跳转地址值,可以实现在4GB的地址空间中的任意跳转,在跳转之前

2014-04-20 17:11:14 2694

原创 嵌入式 hi3518c默认看门狗没有开启,uboot汇编start.s解析

/*====================================Hi3518c start.S Begin 2014-04-20=============================================*//* *  armboot - Startup Code for ARM926EJS CPU-core * *  Copyright (c) 2003

2014-04-20 17:04:29 2326 1

原创 嵌入式 hi3518c裸板烧写uboot简记以及内存初始化寄存器修改技巧

7、加载uboot.bin J-Link>loadbin g:\3518\uboot_tools\3518a.bin 0x80800000 Loading binary file... [g:\3518\uboot_tools\3518a.bin] Writing bin data into target memory @ 0x80800000. 8、设置uboot执行地址

2014-04-20 13:49:09 2580

原创 嵌入式 转义字符小结

打印特殊字符的时候:加‘\’或者双特殊字符例如:要输出一个%,就是要%%的 %%转义成%

2014-04-17 15:03:38 657

原创 嵌入式 Qy_Kernel烧录指令

2014-04-14) ubootenv:  setenv bootargs mem=64M console=ttyAMA0,115200 root=/dev/mtdblock3 rootfstype=jffs2 mtdparts=hi_sfc:256k(boot)ro,256k(env),3584k(kernel),11264k(rootfs) kernel:    sf pro

2014-04-14 16:06:27 1427

原创 嵌入式 适合arm的内存泄漏检测方案

在Linux下些C语言程序,最大的问题就是没有一个好的编程IDE,当然想kdevelop等工具都相当的强大,但我还是习惯使用kdevelop工具,由于没有一个习惯的编程IDE,内存检测也就成了在Linux下编写程序的一个大问题。  是不是说没有一种内存检查工具能够在Linux使用呢,也不是,像valgrind工具还是相当不错的。他的下载地址是http://valgrind.org/down

2014-04-10 18:41:34 7759

原创 嵌入式 setsockopt设置socket—attr达到send立即发送不延时MTU

setsockopt编辑setsockopt()函数用于任意类型、任意状态套接口的设置选项值。尽管在不同协议层上存在选项,但本函数仅定义了最高的“套接口”层次上的选项。目录1简述2注释3操作特性4返回值5用法1简述编辑设置套接口的选项。#include #include

2014-04-10 13:52:17 4094

原创 嵌入式 HI3518c从sensor拿平均亮度决定红外是否开启

int joseph_get_avelum_from_sensor(void){ int qy_ret = 0; ISP_EXP_STA_INFO_S joseph_isp_exp_sta_info; memset(&joseph_isp_exp_sta_info,0,sizeof(ISP_EXP_STA_INFO_S)); qy_ret = HI_MPI_ISP_GetExp

2014-04-09 13:03:43 1951

原创 嵌入式 hi3518c,3g-sincom5360e平台pppd成功拨号联通3G示例

我的平台是HI3518C,3G模块是SINCOM,我的脚本是:root@njqy:/etc/ppp/peers# cat wcdmadebugnodetachlock/dev/ttyUSB3115200crtsctsusepeerdnsnoauthnoipdefaultnovjnovjccompnoccpdefaultrouteipcp-

2014-04-01 14:07:02 2384 4

osd bmp demo

我把部分代码摘到附件中了,FYI 多路码流添加osd的demo,可以下载,但请不要照搬代码,更不要随意传播,谢谢!

2015-06-25

boost中文手册C++

boost中文手册C++ boost库让我们更快、更好地使用C++进行大型系统或者服务器开发工作,提高工作效率,很值得一看!

2015-05-21

tracepoint_lttng使用详解

tracepoint_lttng使用详解,主要是对函数耗时进行定性的统计,对性能优化方案有着举足轻重的效果!LTTng 是一个 Linux 平台开源的跟踪工具,是一套软件组件,可允许跟踪 Linux 内核和用户程序,并控制跟踪会话(开始/停止跟踪、启动/停止事件 等等)。这些组件被绑定如下三个包: •LTTng-tools:库和用于跟踪会话的命令行接口 •LTTng-modules:允许用 LTTng 跟踪 Linux 的 Linux 内核模块 •LTTng-UST:用户空间跟踪库

2015-03-23

lz4-r127.tar.gz

这个源码很不好早,,在此提供给大家参考和使用

2015-03-10

oracle多实例创建和DataGuard配置DEMO

oracle多实例创建和DataGuard配置,欢迎下载,个人觉得还是很不错的哦

2015-03-05

多路径multipath配置文档和相关概念

一、什么是multipath 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。

2015-01-07

paxos 算法 分析

很不错的paxos算法分析文档,值得一看,虽不能深入研究,但是可以初步了解!

2014-12-17

ceph-fs-rpm-build

对于,在redhat或者centos上进行建立rpm,可以说是一个必备的技能,由于项目需求,需要进行rpm包建立,故记录了rpm建立过程,供大家参考!

2014-12-08

centos7 ceph0.87

编译0.87版本ceph源码,并在centos7上成功搭建集群,并测试存储,包括相关rpms以及codes和最新ceph.conf

2014-11-24

vimrc_best

很好,我的用的很舒服,给大家看看,虽然我也从别的地方收集的,但是觉得对大家有帮助,所以分享一下!

2014-11-20

vimrc 配置文件

vimrc配置文件,精华配置,不错!

2014-11-20

centos_netcard_bonding

给大家分享一下,我成功配置的双网卡聚合的示例demo,其实就是相关的配置文件,只要放在对应的目录下就可以了

2014-11-19

ceph-cognize-docs_zh-v1.3

ceph-cognize-docs_zh-v1.3,很好的讲解了关于ceph的部署以及运维,中英文对照可以使用读者更好的理解原始原味的ceph经典。

2014-11-12

Apache2-http-conf

Apache2-http-conf,可以实现在x86以及Linux下实现http上传或者下载服务

2014-10-24

aac+h264封装MP4

aac+h264封装MP4,适用于我们项目的平台,需要使用的朋友可以修改相关参数,有问题可以反馈给我skdkjxy@163.com,谢谢

2014-10-23

uboot-hi3518c配置表

uboot-hi3518c配置表(适用本项目平台),这是仅适用RMII 网络模式!

2014-10-09

一眼看出NALU中SPS与PPS与SEI与IDR与P帧

一眼看出NALU中SPS与PPS与SEI与IDR与P帧

2014-09-30

使用 libevent 和 libev 提高网络应用性能

使用 libevent 和 libev 提高网络应用性能

2014-09-28

odb示例DEMO

odb示例DEMO,仅供大家参考交流……

2014-09-28

C/C++面试题

经典嵌入式、笔试面试题目大全,这里包含了面试笔试的程序题目,和一些关键字的解析

2013-01-10

空空如也

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

TA关注的人

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