
linux开发
文章平均质量分 88
yhcs1213
ppc/arm vxworks/linux开发
展开
-
T1042/T2080 内核移植阶段(一)串口乱码问题解决
u-boot起来之后,通过网络加载内核、文件系统及设备树,发现加载过程中串口出现乱码,并死机。串口驱动:/driver/tty/serial.c打印出自 :/kernel/printk.cint unregister_console(struct console *console){struct console *a, *b;int res;...原创 2019-07-23 10:31:52 · 1055 阅读 · 0 评论 -
freeRadius配置2
FREERADIUS验证配置1. FREERADIUS简介FREERADIUS是一套开源,免费的完全兼容RADIUS协议的RADIUS服务器/客户端软件,可以用它对用户的接入和访问特定的网络进行有效的控制,授权,计费等等,它支持多种验证,包括文件,LDAP,以及主流的支持SQL的数据库(ORACLE,MYSQL,DB2等等).我们可以使用FREERADIUS来搭建一个3A认证的服务转载 2016-01-11 14:24:02 · 1646 阅读 · 0 评论 -
freeRadius的配置和措施
freeRadius 基础配置及测试孤剑http://blog.youkuaiyun.com/alonesword/安装完成以后就开始对freeradius服务端进行一些相应的设置一、 启动 radius 服务先以调试模式启动服务器(需要root用户权限),看看能不能正常运行radius服务程序radiusd -X确认radius转载 2016-01-11 14:19:42 · 3060 阅读 · 0 评论 -
linux export 设置环境变量
在Linux里设置环境变量的方法(export PATH)在Linux里设置环境变量的方法(export PATH)一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录下,build_tools就是我的编译工具,则有如下三种方法来转载 2015-10-13 16:29:59 · 607 阅读 · 0 评论 -
gcc 、configure 用法
make LDFLAGS="-static" #静态编译./configure --disable-nls #禁止对国际化支持gcc优化及特定编译安装示例:#!/bin/shCFLAGS="-O2 -mcpu=i386 -march=i386 -pipe -fomit-frame-pointer"CXXFLAGS转载 2015-10-13 15:45:55 · 2513 阅读 · 0 评论 -
linux动态链接库的编译及使用<二>
Linux下的.so是基于Linux下的动态链接,其功能和作用类似与windows下.dll文件。下面是关于.so的介绍:一、引言通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(executable file)。程序在运行时,与函数库再无瓜葛,因为所有需要转载 2015-10-09 15:26:52 · 441 阅读 · 0 评论 -
configure: error: C compiler cannot create executables编译错误的解决办法的思路分析
编译错误:zyx@zyx:/opt/EmbedSky/Qte$ sudo ./arm-qtopia-2.2.0-konqueror_build[sudo] password for zyx:the qpe program is already !the konqueror directory is already !Build konqueror , please wait .转载 2015-10-23 09:36:01 · 3363 阅读 · 1 评论 -
linux静态库和动态库的编译使用
一、为什么要使用库文件 我们在实际编程工作中肯定会遇到这种情况:有几个项目里有一些函数模块的功能相同, 实现代码也相同,也是我们所说的重复代码。比如,很多项目里都有一个用户验证的功能。 代码段如下: //UserLogin.h文件,提供函数声明 int IsValidUser(char* username, int namele转载 2015-08-06 17:10:44 · 714 阅读 · 0 评论 -
linux中patch的用法
说到patch命令,就不得不提到diff命令,也就是制作patch的必要工具。diff命令,在制作patch文件的时候,基本上只需要使用到diff -Nau 这个参数,如果比较的是文件夹,还要加上-r参数,所以一般直接使用Naur参数。 实验的基本步骤。我打算是建立一个级联目录./x/xx/xxx/,在xxx目录下建立两个不同的文件xxx1,xxx2。然后在xxx目录下用dif转载 2015-10-08 15:09:24 · 427 阅读 · 0 评论 -
./configure -build,-host,-target设置
build:执行代码编译的主机,正常的话就是你的主机系统。这个参数一般由config.guess来猜就可以。当然自己指定也可以。host:编译出来的二进制程序所执行的主机,因为绝大多数是如果本机编译,本机执行。所以这个值就等于build。只有交叉编译的时候(也就是本机编译,其他系统机器执行)才会build和host不同。用host指定运行主机。target:这个选项只有在建立交叉编译环境的转载 2015-10-23 09:45:55 · 526 阅读 · 0 评论 -
linux环境变量设置
linux下环境变量设置一、什么是环境变量?Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。二、定制环境变量 环境变量是和Shell紧密相关的,它是通过Shell命令来设置的。环境变量又可以被所有当前用户所运行的程序所使用。转载 2015-10-23 09:54:11 · 406 阅读 · 0 评论 -
生成单个/多个补丁,打补丁用法
通过diff工具生成补丁, patch工具打上补丁.在使用diff之前, 你需要保留一份未修改过的源码, 然后在其它地方修改源码的一份拷贝. diff对比这两份源码生成patch. 修改过的源码必须保留原来的文件名, 例如, 如果你修改源码中的a.c文件, 那么, 修改后的文件还是名为a.c, 在修改之前你可以复制a.c为a.orig.c进行备份.1.为单个文件生成补丁$ di转载 2015-10-21 16:10:14 · 3406 阅读 · 0 评论 -
makefile中常用函数讲解
在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。一、函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:$( )或是${ }这里,就是函数名,make支持的函数不多。是函数转载 2015-10-21 15:57:34 · 406 阅读 · 0 评论 -
linux etc目录讲解
1 /etc/hosts#/etc/hosts#文件格式: IPaddress hostname aliases#文件功能: 提供主机名到IP地址的对应关系,建议将自己经常使用的主机# 加入此文件中,也可将没有DNS记录的机器加入到此文件中,# 这样会方便网络应用127.0.0.1 localhost localhost.localdomain202.118.66.81转载 2016-01-13 11:27:00 · 900 阅读 · 0 评论 -
Linux多线程编程
Linux多线程编程小结 前一段时间因为开题的事情一直耽搁了我搞Linux的进度,搞的我之前学的东西都遗忘了,很烦躁的说,现在抽个时间把之前所学的做个小节。文章内容主要总结于《Linux程序设计第3版》。1.Linux进程与线程 Linux进程创建一个新线程时,线程将拥有自己的栈(因为线程有自己的局部变量),但与它的创建者共享全局变量、文件描述符、信号句柄和当转载 2016-02-16 10:41:31 · 324 阅读 · 0 评论 -
T1042/T2080 U-BOOT 移植阶段(四)调试网口问题不通解决
本次设计中,我们采用MEMAC4 (RGMII)接口作为调试接口,但是发现网口并不通1.首先排查PHY 的问题,phy有没有解复位 结果 : CPLD 已经对PHY解复位,且插上网线后,phy'灯link亮,说明phy确实已经解复位2.使用mii命令,读取phy寄存器,插拔网线后观察寄存器的变化,是否正常反应出phy的down和up拔掉网线时phy的状态=> mii...原创 2019-07-23 09:45:24 · 1393 阅读 · 0 评论 -
T1042/T2080 u-boot移植(三):CPLD不能访问问题解决
u-boot起来之后,准备测试下板上的外设,包括CCSR,PCIE ,CPLD空间能否正常访问,因为phy的解复位由CPLD完成,所以CPLD 必须正常访问,而实际测试过程中发现CPLD无法正常访问。Cpld地址为ffd00000boot下访问直接导致u-boot重启提示错误如下:=> md 0xffd00000ffd00000:Machine check in kerne...原创 2019-07-23 09:29:26 · 1248 阅读 · 0 评论 -
T1042/T2080 u-boot移植阶段(二)
解决DDR时序导致u-boot跑飞的问题把生成的u-boot-pbl-with-spl.bin 烧写到SPI flash中之后,重新上电串口打印如下默认的DDR 使用的是插槽式DDR,控制器根据SPD获取DDR的运行速度,而我们自己设计的单板DDR为颗粒,已经焊接到PCB上去了,所以需要修改对应的config.h文件,去掉SPD 模式,同时由于我们自己使用的DDR3L与demo板的D...原创 2019-07-23 09:21:20 · 562 阅读 · 0 评论 -
T1042/T2080 u-boot移植(一)
QorIQ T1042/T1022系列通信处理器结合64位内核,基于Power Architecture技术构建而成。适用于集成控制和数据平台应用,如固定路由器、交换机、嵌入式接入设备、防火墙和其他数据包过滤应用,以及通用嵌入式计算,它具备较高的集成度,可提供卓越的性能优势,简化设计;支持硬件协助虚拟化,内核提供额外的内核特权等级;集成QorIQ DPAA,可以安排内核、硬件加速器和网络接口的工作...原创 2019-07-23 09:06:35 · 1717 阅读 · 0 评论 -
LS1021A 调试问题记录
本人从事PPC/ARM Linux/vxworks 开发多年,各类问题欢迎进群讨论:QQ群:245079182。#############################################板子最初u-boot环境变量#############################################=> printenvarch=armbaudrate=...原创 2019-07-22 17:17:17 · 4666 阅读 · 1 评论 -
LS1021A 开发环境搭建
1.进NXP官方网站,下载对应的.iso 官网 ->软件->SDK,下载到一个IMAGE.ISO + YOCOTO.ISO(必须) + SROUCE.ISO(必须)2. .ISO拷贝到虚拟机,挂在到某个目录,可能会提示你只能使用只读模式挂在到某个目录root@test:/work/winshare# lsarm_a7 QorIQ Linux SDK v2.0 CORTE...原创 2019-07-22 17:08:19 · 3297 阅读 · 0 评论 -
C常见面试题<四>
1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出转载 2016-02-25 12:49:21 · 867 阅读 · 0 评论 -
C/C++常见面试题<三>
1. C中static有什么作用(1)隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。(2)static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static转载 2016-02-25 12:44:20 · 432 阅读 · 0 评论 -
C常见面试题<一>
Q1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: "。 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变转载 2016-02-25 12:16:43 · 377 阅读 · 0 评论 -
freeRadius客户端和服务器分别安装实验
freeradius-client-1.1.6 安装 (1)安装非常简单,和普通软件相同都是下面三步: ./configure makemake install (2)编译后生成的可执行程序 /usr/local/sbin/|--转载 2016-02-18 14:10:47 · 4505 阅读 · 0 评论 -
单链表逆序
单链表反转/逆序的两种方法 比较两种思路的差异在 2012年07月05日 那天写的 已经有 57642 次阅读了感谢 参考或原文服务器君一共花费了96.662 ms进行了3次数据库查询,努力地为您提供了这个页面。http://www.nowamagic.net/librarys/veda/detail/2241转载 2016-02-17 15:09:05 · 815 阅读 · 0 评论 -
linux makefile详细教程
近期在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,仅仅是这篇文章从一个实例切入,在有些地方比較好理解。能让人看懂就是好文章。 跟我一起写转载 2015-10-21 15:42:33 · 547 阅读 · 0 评论 -
GCC 命令行详解 -L 指定库的路径 -l 指定需连接的库名
1. 为什么会出现undefined reference to 'xxxxx'错误?首先这是链接错误,不是编译错误,也就是说如果只有这个错误,说明你的程序源码本身没有问题,是你用编译器编译时参数用得不对,你没有指定链接程序要用到得库,比如你的程序里用到了一些数学函数,那么你就要在编译参数里指定程序要链接数学库,方法是在编译命令行里加入-lm。2. -l参数和-L参数-l参数就是转载 2015-10-22 11:34:36 · 380 阅读 · 0 评论 -
使用信号量实现同步
在上一篇文章中已经用信号量来实现线程间的互斥,达到了互斥锁的效果,今天这篇文章将讲述怎样用信号量去实现同步。信号量的互斥同步都是通过PV原语来操作的,我们可以通过注册两个信号量,让它们在互斥的问题上互动,从而达到同步。通过下面实例就可以很容易理解: [cpp] view plaincopy#include转载 2015-09-08 16:51:23 · 1161 阅读 · 0 评论 -
linux常用网络命令介绍
原文地址:http://vbird.dic.ksu.edu.tw/linux_server/0140networkcommand/0140networkcommand-centos4.phpLinux 的网络功能相当的强悍,一时之间我们也无法完全的介绍所有的网络命令, 这个章节主要的目的在介绍一些常见的网络命令而已。至于每个命令的详细用途将在后续服务器架设时, 依照命令的相转载 2015-09-09 10:46:59 · 763 阅读 · 0 评论 -
移植OpenWrt到CuHead Pro WiFi
移植OpenWrt到CuHead Pro WiFiPosted by: zou, baozhu , 三月 13, 2014CuHead Pro是一款路由器开发板,下面是开发板的配置信息。名称型号厂家参数CPURT5350FRalink360MHz(MIPS arch)SDRAM转载 2015-09-09 09:53:13 · 837 阅读 · 0 评论 -
C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显转载 2015-09-08 15:59:29 · 227 阅读 · 0 评论 -
linux系统下获取本地IP地址方法
[cpp] view plaincopy#include #include #include #include #include #include #include int main(int argc, char *argv[]) { struct ifaddrs *ifaddr,转载 2015-09-08 11:21:30 · 453 阅读 · 0 评论 -
linux线程属性设置
在上一篇文章中,介绍了线程的创建和退出,以及相关函数的使用。其中pthread_create函数的第二个参数,是关于线程属性的设置,这也是今天所有讲述的。这些属性主要包括邦定属性、分离属性、堆栈地址、堆栈大小、优先级。其中系统默认的是非邦定、非分离、缺省1M的堆栈、与父进程同样级别的优先级。在pthread_create中,把第二个参数设置为NULL的话,将采用默认的属性配置。(1)邦定属转载 2015-09-08 16:44:05 · 302 阅读 · 0 评论 -
linux线程的创建和退出(二)
在上一篇文章中对线程进行了简单的概述,它在系统中和编程的应用中,扮演的角色是不言而喻的。学习它、掌握它、吃透它是作为一个程序员的必须作为。在接下来的讲述中,所有线程的操作都是用户级的操作。在LINUX中,一般pthread线程库是一套通用的线程库,是由POSIX提出的,因此他的移植性是非常好的。 创建线程实际上就是确定调用该线程函数的入口点,这里通常使用的函数是pthread_c转载 2015-09-08 16:38:16 · 347 阅读 · 0 评论 -
linux多线程简介(-)
进程是系统中程序执行和资源分配的基本单位。每个进程都有自己的数据段,代码段和堆栈段,这就导致了进程在进行切换等操作起到了现场保护作用。但是为了进一步减少处理机的空转时间支持多处理器和减少上下文切换开销,进程演化中出现了另外一个概念,这就是线程,也被人称为轻量级的进程。它是一个进程内的基本调度单位。线程是在共享的内存空间中并发的多道执行路径,它们共享一个进程的资源,比如文件描述符和信号处理等。因此,转载 2015-09-08 16:28:46 · 300 阅读 · 0 评论 -
linux文件及目录函数
文件及目录函数(37)chdir, chmod, chown, chrootfchdir, fchmod, fchown, ftruncatelchown, truncate,get_current_dir_name, getcwd, getwdopendir, closedir, readir, scandir, seekdir, rewinddir,转载 2015-09-08 15:48:12 · 454 阅读 · 0 评论 -
linux日志读写接口函数
syslog(),openlog(),closelog()这里面的三个函数openlog, syslog, closelog是一套系统日志写入接口。另外那个vsyslog和syslog功能一样,只是参数格式不同。 通常,syslog守护进程读取三种格式的记录消息。此守护进程在启动时读一个配置文件。一般来说,其文件名为/etc/syslog.conf,该文件决定了不转载 2015-09-08 10:58:09 · 1219 阅读 · 0 评论 -
Configure,Makefile.am, Makefile.in, Makefile文件之间关系(转)
1.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。 your source files --> [autoscan*] --> [configure.scan] --> configure.ac2.aclocal (automake):根转载 2015-08-26 19:33:35 · 527 阅读 · 0 评论 -
makefile include的作用
Makefile include(2011-05-26 16:46:23)转载▼标签:杂谈http://blog.sina.com.cn/s/blog_6cc850810100r8fr.html分类:嵌入式linux本节我们讨论如何在一个 Makefile 中包含其它的 m转载 2015-08-26 20:17:23 · 1774 阅读 · 0 评论