- 博客(32)
- 资源 (9)
- 收藏
- 关注
原创 C与C++ 混合编译
通常情况下,在用g++对源文件编译时,无论.c 还是.cpp 都是按照c++编译的,所以不会存在混合编译的问题但是若用c++调用c编译器编译出来的库,就涉及到混合编译了请看列子:
2016-07-18 00:38:26 738
原创 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 599
原创 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 1439
转载 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 499
转载 ffmpeg 编译常见错误
转自 http://blog.chinaunix.net/uid-26000296-id-4217121.html一、FFmpeg源代码下载与编译# wget http://www.ffmpeg.org/releases/ffmpeg-0.5.13.tar.bz2# tar -jxvf ffmpeg-0.5.13.tar.bz2# vim ffmpeg_
2016-05-13 16:26:43 2220
原创 QT加载qwt开源控件库
qwt下载地址:http://sourceforge.net/projects/qwt/files/qwt/windows下编程下载zip,linux下载bz2的
2016-04-08 12:10:21 3249
原创 tcp socket阻塞与非阻塞
1.sock默认为阻塞模式,下面的代码可对sock设置为非阻塞模式 int flags = fcntl(sock, F_GETFL, 0); fcntl(sock, F_SETFL, flags | O_NONBLOCK);2.假设当前代码为服务器,并且已经执行过如下代码,当sock为阻塞模式,调用accept会阻塞直到一个请求到来当sock为非阻塞模式,accept
2016-04-05 18:39:30 11902
原创 QT5.6.0 和 vs2013 联合编程
QT5.6.0 和 vs2013 联合编程安装QT,下载地址:http://download.qt.io/archive/qt/安装 Qt Creator,下载地址:http://download.qt.io/archive/qtcreator/安装Qt VS开发插件,下载地址:http://download.qt.io/archive/vsaddin/ vs在编译时,提示找不
2016-03-21 15:54:51 3285
原创 DVSDK码率控制的理解
1.动态参数和静态参数:创建编码器的时候,有params和dynParams两种参数,顾名思义,Venc根据params创建,运行过程中又可以对dynParams改变配置Venc1_Handle Venc1_create(Engine_Handle hEngine, Char *codecName, VIDENC1_Params *pa
2016-03-11 16:38:06 1249
原创 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 452
原创 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 8190
转载 linux C程序中获取shell脚本输出(如获取system命令输出)
linux C程序中获取shell脚本输出(如获取system命令输出)分类: Linux/Unix1. 前言Unix 界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个 ping程序来测试网络
2015-09-01 09:41:56 307
转载 sockaddr和sockaddr_in的区别
struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址。在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体。网络中的地址包含3个方面的属性:1 地址类型: ipv4还是ipv62 ip地址3 端口相应的,头文件有如下定义: C代码 include struct
2015-08-06 10:48:36 328
原创 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 1802
原创 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 2622
原创 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 447
原创 挂载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 8519
转载 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 6426
转载 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 364
原创 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 918
原创 live555实现共享内存视频直播
在上节的基于FIFO传输的例子上修改,实现了基于共享内存的rtsp传输,结构体share_mem保存接收到的数据长度和数据,在init函数里实现了信号量和共享内存的初始化SendH264File不再调用SendH264Data,直接把数据和长度写进共享内存。/****************************************************************
2015-07-20 09:25:23 4357 1
原创 flash 挂载用户分区
通过以下命令查看分区:# cat /proc/partitions major minor #blocks name 31 0 256 mtdblock0 31 1 1280 mtdblock1 31 2 2496 mtdblock2 31 3 4160 mtdbl
2015-07-17 13:57:11 3581
原创 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 4128
原创 移植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 2233
原创 守护进程日志探寻
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 416
原创 红外hs0038接收测试代码
开发板的红外驱动集成好了,只需要编写用户空间代码就ok,红外输入和按键系统原理都是相同的,都是输入子系统测试的时候用了一个华为荣耀盒子的遥控器,需要对驱动修改一下,不然读不到值的,此时已经可以在内核中打印出来遥控器发出的红外键值,可是向输入子系统发送按键值时子系统是收不到的,因为每个键值都要对比相应的事件码, static int tq210_hs0038_read(struct tq21
2015-07-08 14:32:10 3074
原创 arm下adc测试代码
首先确认ioctl使用方法,然后写代码: #include #include #include#define IN_PIN 0x0c#define RESOL 0x0dvoid main(){ double value = 3.3/1024; int fd; int data; fd = open("/dev/adc",O_RDWR); ioctl(fd,IN_
2015-06-24 15:34:04 632
原创 arm下蜂鸣器测试代码
首先还是看内核蜂鸣器的实现,如下图,这个和led一样,都是比较简单的字符驱动,代码如下:#include #include #includevoid main(){ int fd; int freq = 0; fd = open("/dev/beep",O_RDWR); while(1) { //ioctl(fd,1,1); ioctl(fd,1,freq); sle
2015-06-24 15:11:39 1607
原创 arm下的led灯测试代码
定位内核源代码,我用的天嵌的TQ210,LED驱动路径为drivers/char/tq210_leds.c通过代码分析,得知参数应该怎么写其中,ioctl的第二个参数是控制亮和灭的,第三个参数是控制哪个led的然后分析代码查看设备文件路径,#define DEVICE_NAME "led" /*椹卞姩鎺ュ彛璁剧疆*/static struct file_operations de
2015-06-19 16:25:51 1325
原创 arm下的按键测试代码
首先确认输入子系统: cat /proc/bus/input/devices#include #inlcude #include int main (){ int keys_fd; char ret[2]; struct input_event t; keys_fd = open ("/dev/input/event0", O_RDONLY);
2015-06-19 14:51:11 1130
sa9227驱动+foobar+配置说明书
2016-03-07
mongoose 小型 嵌入式 http 服务器
2016-03-07
对mongoose源码的阅读,写的分享ppt,欢迎一起探讨
2016-03-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人