系统探究
就是个玩耳机的
用毕生所学,做自己喜欢的事情
展开
-
挂载ubifs文件系统分区
闲着没事玩玩ubifs1.格式化: ./ubiformat /dev/mtd42.创建ubi0节点: ubiattach /dev/ubi_ctrl -m 43.创建分区标识: ubimkvol /dev/ubi0 -N rfs -s 81920 发现这里出错了,查了一下-s后边是byte,81920太小了,才10k,果断改大点 改成10原创 2015-07-27 14:12:24 · 8643 阅读 · 0 评论 -
sockaddr和sockaddr_in的区别
struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址。在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体。网络中的地址包含3个方面的属性:1 地址类型: ipv4还是ipv62 ip地址3 端口相应的,头文件有如下定义: C代码 include struct转载 2015-08-06 10:48:36 · 344 阅读 · 0 评论 -
linux下文件内容多出^M的解决方法
昨天遇到一个问题,在配置文件中写的启动脚本,无论怎么调用都显示启动不成功,命令不正确startup-shell=/.........../apache-tomcat-7.0.57/bin/catalina.sh run把内容打印出来以后,发现后边结束部分,是“0xD,0xA”,也就是\r\n原因是:如果在Dos或Windows下使用编辑器编写一些文本文件,然后通过网络传送到Unix原创 2015-09-09 10:31:40 · 8288 阅读 · 0 评论 -
c中select的理解
解决的问题:传统用法,若一个handle不可读,则阻塞;设想若有一个不可读被阻塞了,这个时候还有一个handle可读呢,这时就要用select来解决Select的函数格式:int select(int maxfdp, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval*timeout);原创 2015-10-16 10:23:50 · 478 阅读 · 0 评论 -
mongoose 源码分析 ppt
原创 2015-12-21 11:30:50 · 708 阅读 · 0 评论 -
centos 安装 git
1. 安装git我用的是centos系统,在使用yum install git2. 使用git连接github使用git连接github时,需要将linux下产生的一个ssh公钥放到github上。具体步骤详见:http://blog.sina.com.cn/s/blog_6b706e15010199p1.html。主要命令有:1转载 2016-06-02 14:10:52 · 512 阅读 · 0 评论 -
LINUX编程 设置系统时间
网上找了很多设置时间的方法,都不是很好,自己就动手写了一个。 根据输入字符串,转换为tm结构的日历结构体,再调用mktime转化为time_t . 设置后最好调用一下hwclock,写入RTC。系统是每隔11分钟才会写一次RTC,不然断电没法恢复。#include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h原创 2016-06-12 14:07:57 · 1463 阅读 · 0 评论 -
ubuntu 14.04安装codeblocks
1.下载对应的deb安装包 2.安装g++等开发包 sudo apt-get install build-essential 若执行不成功 执行sudo apt-get install -f 清除无效包 3.安装codeblocks dpkg -i *.deb原创 2016-06-13 10:30:42 · 614 阅读 · 0 评论 -
C与C++ 混合编译
通常情况下,在用g++对源文件编译时,无论.c 还是.cpp 都是按照c++编译的,所以不会存在混合编译的问题但是若用c++调用c编译器编译出来的库,就涉及到混合编译了请看列子:原创 2016-07-18 00:38:26 · 766 阅读 · 0 评论 -
linux C程序中获取shell脚本输出(如获取system命令输出)
linux C程序中获取shell脚本输出(如获取system命令输出)分类: Linux/Unix1. 前言Unix 界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个 ping程序来测试网络转载 2015-09-01 09:41:56 · 350 阅读 · 0 评论 -
flash_erase擦除NAND flash坏块失败
转自 http://blog.csdn.net/yuanlulu/article/details/7339895板子使用busybox文件系统,带了mtd-utils的工具,包括flash_erase。首先查看帮助信息:[root@M3250 ~]# flash_erase --hUsage: flash_erase [options] MTD_DEVICE转载 2015-07-23 20:49:26 · 6674 阅读 · 0 评论 -
mtd-utils 工具的使用
转自:http://blog.csdn.net/yinkaizhong/article/details/3604794 一.下载源码包。二.编译1.修改Makefile CROSS=mipsel-linux-2.make3.将编译生成的可执行文件COPY到开发板上三.命令的使用使用命令前用cat /proc/mtd 查看一下转载 2015-07-23 20:40:23 · 388 阅读 · 0 评论 -
移植live555 到hi3518
1.修改config.armlinux文件CROSS_COMPILE?= /opt/hisi-linux-nptl/arm-hisiv100-linux/bin/arm-hisiv100-linux-uclibcgnueabi-COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGE原创 2015-07-13 17:10:43 · 2262 阅读 · 0 评论 -
live555实现264直播
代码可以参考这篇文章http://blog.csdn.net/firehood_/article/details/16844397作者抽丝剥茧,用最简洁的方式实现了rtsp server。今天就来测一下效果首先更改Makefile,用于生成live555MediaServer和main(测试代码)INCLUDES = -I../UsageEnvironment/incl原创 2015-07-14 17:27:25 · 4200 阅读 · 0 评论 -
守护进程日志探寻
1.首先要更改配置文件,Ubuntu下不存在/etc/syslog.conf,经过一番折腾,找到了rsyslog.conf,进而发现了真正的配置文件/etc/syslog.d/50-default.conf 修改配置文件如下,含义为openlog时,参数为LOG_MAIL的直接发送到UDP的514端口,参数为LOG_USER的即存到本地,也发送到UDP,修改好后重启 服务,service原创 2015-07-10 10:44:04 · 437 阅读 · 0 评论 -
nandflash读写是以page为单位的测试
我用的nadflash1个page时2k,也就是0x800下面对flash读取,看一下到底读10个字节和1个字节有啥区别[root@EmbedSky arm-linux]# ./nanddump -s 0x100800 -l 10 -f 10.txt /dev/mtd0ECC failed: 0ECC corrected: 0Number of bad blocks: 0Num原创 2015-07-30 10:34:48 · 2656 阅读 · 0 评论 -
linux用户态下写flash数据,共享给uboot
若文件系统或者内核在用户态完成升级后(升级到新的分区),uboot启动需要修改环境变量,所以有了今天的内容1.uboot中定义了#define CFG_ENV_OFFSET 0x00100000,环境变量存放位置,#define CFG_ENV_SIZE 0x4000 环境变量大小(实际用到的没有这么大),这个flash一 个page是0x800,那么就把数据存放在0原创 2015-07-30 11:56:33 · 1875 阅读 · 0 评论 -
live555实现共享内存视频直播
在上节的基于FIFO传输的例子上修改,实现了基于共享内存的rtsp传输,结构体share_mem保存接收到的数据长度和数据,在init函数里实现了信号量和共享内存的初始化SendH264File不再调用SendH264Data,直接把数据和长度写进共享内存。/****************************************************************原创 2015-07-20 09:25:23 · 4492 阅读 · 1 评论 -
uboot 环境变量设置研究
首先要知道uboot的第二个阶段是从libarm/board.c开始的,void start_armboot (void),这个函数是检查flash上的环境变量是否有效,下面的代码中的init_sequence就是初始化列表 for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) { if ((*ini原创 2015-07-29 16:30:43 · 465 阅读 · 0 评论 -
linux下实现用户态烧写内核
还是拿TQ210的板子做例子吧1.修改内核代码,增加一个USER1分区(),0x8000000就是128M的地址,待会准备在这个分区烧写一个linux 内核,实现从这个分区启动static struct mtd_partition tq210_partition_info[] = { [0] = { .name = "Bootloader", .offset = 0,原创 2015-07-22 17:22:50 · 1003 阅读 · 0 评论