大概怎么设置海思黑苹果boot-argsargs信息怎么设置

今天公司来了50块样机新板,然后硬件工程师拿了一块样机让我调试和系统移植下去验证板子的硬件是不是有问题,之前在学校移植过三星S3C2410,因此对过程有些了解,其实不同的开发板都是大同小异的,无非就是FLASH大小不同,以及分区不同而已,
下面我把自己移植的过程做了下笔记希望能为一些遇到相似问题的人有你帮助。
首先移植的时候如果你用的是TFTP协议的话,要一个TFTP传输软件,软件文件设置为你存放Uboot.bin,内核的uImage,以及你的根文件系统rootfs...jffs2,等文件,server interface 设置为你的windows IP,
然后启动开发板,设置你的bootargs,bootcmd,
将ipaddr 设置为你的开发板的ip,这个IP需要注意的是不要和你的虚拟机以及windows IP相互冲突,
serverip 设置为你的windows ip,
然后不要忘记了
SD卡升级:将*.crc(后缀名是crc的文件)文件置于sd卡根目录下,开机启动时设备自动升级。
32M SPI Flash
地址空间说明| 1M (512K uboot ,512K para)
15M ||---------------------------------|---------------|---------------|-------------|---------------|---------------||
1.uboot:sf probe 0
tftp 0x u-boot-hi3520d-T.bin
sf erase 0 100000
/*sf probe 0mw.b
ff 80000tftp 0x u-boot-hi3520d-T.binsf erase 0 80000sf write
*//*sf erase */
2.kernel:sf probe 0mw.b
sf erase 000
sf write 000 400000
3.rootfs:sf probe 0
tftp 0x rootfs_uclibcT.jffs2
sf erase 000
sf write 000 a00000
(1)upgrading:sf probe 0mw.b
ff 80000tftp 0x upgrading.jpgsf erase fsf write 000 10000
(2)loading:sf probe 0mw.b
ff 80000tftp 0x loading.jpgsf erase fsf write 000 10000
5.app:sf probe 0mw.b
ff f00000tftp 0x mdvrapp-T.imgsf erase 000sf write
6.设置启动参数(烧写uboot是默认已经设置好了)setenv bootargs 'mem=126M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),10M(rootfs),512K(jpg),1536K(config),15M(APP)'
// setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),10M(rootfs),512K(APP),512K(config)'
// setenv bootcmd 'sf probe 0;sf read 0xxx400000;bootm 0x' //setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs)'
不同的板子要不同对待,但是大多数板子的系统移植都是类似的,此移植方法只提供参考不能死板硬套
希望对你有帮助,谢谢!
Hi3520D 串口使用实例
以下给出了一个源文件uart.c和makefile文件,在 sdk/mpp/sample/
底下新建一个文件夹,随便命名,现在命名为UartTest,再把uart.c和makefile拷贝进去,编译...
HI3520D使用512M的内存
HI3520D使用512M的内存板子原来的内存是256m,觉得太小,所以改用了512m的芯片,手册上是支持的。
确认芯片电路256M内存和512M内存都是8个BANK,10bit行地址,不同的是256...
hi3520d无线视网络频传输开发总结
1.播放rtsp流地址,在vlc上打开
rtsp://192.168.1.21/xstrive0
/etc/init.d/rcS
insmod rtuti...
使用MediaPlayer播放本地Mp3文件时,需要注意的访问路径的问题以及访问权限的问题。
1.访问路径:/storage/emulated/0 此路径即为手机的根路径,可以通过下载ES文件浏览器...
一、开发环境搭建 (已完成)
负责人:kris
状态:已完成
所整理标签为:搭建  SDK  JDK  NDK  Eclipse  ADT  模拟器  AVD  调试...
没有更多推荐了,系统内存起始位置:0x
修改系统内存1024M
mem_total=2048;
# 512M, total mem
insmod mmz.ko mmz=anonymous,0,0xM:ddr1,0,0xAM anony=1 || report_error
./load3531a -i -osmem 1023
修改操作系统内存512M
mem_total=2048;
# 512M, total mem
insmod mmz.ko mmz=anonymous,0,0xM:ddr1,0,0x3M anony=1 || report_error
./load3531a -i -osmem 512
//海思开发板设置
setenv bootargs 'mem=512M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),27M(rootfs)'
//ruiqu 定制版设置
setenv bootargs 'mem=512M console=ttyAMA0,115200 root=/dev/mtdblock3 rootfstype=yaffs2 mtdparts=hinand:1M(boot),5M(logo),16M(kernel),128M(rootfs),106M(other)'
14.海思修改os内存的方法
在这里,我们将64M的os内存设置为128M.1.Uboot中配置setenv bootargs 'mem=128M console=ttyAMA0,115200 root=/dev/mtdblock...
Linux(Centos)Hi3516交叉编译问题
1. vim /etc/profile
export PATH=$PATH:/home/xxxx/MyWork/arm-hisiv300-linux/arm-hisiv300-linux/b...
踩内存问题定位总结
现象:挂死,程序跑的异常,数据被串改
大致原因:数组越界,字符串操作越界,栈指针操作越界,操作了释放掉了的指针,多线程时序对资源保护控制不当,内存管理异常,使用了其他地方的内存
海思MPP业务MMZ内存优化介绍
海思MPP业务MMZ内存优化介绍
&&&&&amp...
先看下这块海思芯片的bootargs:bootargs=mem=96M console=ttyAMA0,115200 root=/dev/mtdblock8 rootfstype=yaffs2 mtd...
有眼福啦!昨天韦东山老师花了半天时间在交流社区答疑,这不小编马上送来热腾腾的9个问题以及解决方法,答案全部出自韦老师一人之手,全是精华。可能只有区区20字,但里面包含了珍贵的经验和情怀。对了,之前发的...
记录调试hisilicon 平台相关经验,主要为liteos,double system
(1) 增加虚拟内存:cmd -& taskmgr 打开任务管理器,查看物理内存和虚拟内存,可观察matlab在运行过程中是否超过物理内存和虚拟内存。若超过,增加虚拟内存的方法是不可行的。物理内存不足...
主要还是两个函数free_bootmem_node和free_bootmem
这里主要是标记相应比特位为0,空闲。
* free_bootmem_node - mark a page r...
没有更多推荐了,配置开发环境
1、缺少头文件
error: GL/gl.h: No such file or directory
sudo apt-get install mesa-common-dev
2、编译出现如下错误提示:
/usr/bin/ld: cannot find -lGL
执行下面命令解决:
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
搭建NFS服务器
检查内核是否开启NFS
1)进入内核源码目录make menuconfig,进入菜单Networking support-&Networking options-& TCP/IP networking。确保nfs的功能已经被打开
IP:BOOTP support
2)进入File systems-&Network File Systems 确保nfs加载可以被使用
Root file system on NFS
搭建NFS服务器
1)安装NFS
apt-get install nfs-kernel-server
apt-get install nfs-common
2) 创建共享目录,我在home/lz下创建了一个/nfs/rootfs,将其作为共享目录。并修改权限
chmod 777 -R /home/lz/nfs/rootfs
3) 配置NFS,打开配置文件并在最后一行添加
sudo gedit etc/exports
在最后一行添加
/home/lz/nfs/rootfs *(rw,sync,no_root_squash,no_subtree_check)
/home/lz/nfs/rootfs:与nfs服务客户端共享的目录,这个路径必须和你前面设置的文件的路径一致!
*:允许所有的网段访问,也可以使用具体的IP
rw:挂接此目录的客户端对该共享目录具有读写权限
sync:资料同步写入内存和硬盘
no_root_squash:root用户具有对根目录的完全管理访问权限。
no_subtree_check:不检查父目录的权限
4)重启NFS服务
执行命令:sudo /etc/init.d/portmap restart
sudo /etc/init.d/portmap restart
重启portmap服务。nfs是一个RPC程序,使用它前,需要映射好端口,通过portmap设定。
注意:Ubuntu 14.04以后,要使用sudo /etc/init.d/rpcbind restart 重启rpcbind 服务。所以执行
sudo /etc/init.d/rpcbind restart
然后执行命令:
sudo /etc/init.d/nfs-kernel-server restart
重启nfs服务。并执行
showmount localhost -e
查询是否成功。
nfs用作嵌入式linux的文件系统
1) 设置u-boot启动参数
在U-Boot中设置启动参数
U-Boot&setenv bootargs root=/dev/nfs nfsroot=192.168.1.2:/home/lz/nfs/rootfs ip=192.168.1.3:192.168.1.2:192.168.1.10:255.255.255.0::eth0:off init=/linuxrc console=ttySAC2,115200
root=/dev/nfs 并非真的设备,而是一个告诉内核要通过网络取得根文件系统。
nfsroot=你的主机IP:根文件系统路径
ip=你的开发板ip地址,注意开发板的ip地址只要和主机ip地址在一个网段内就可。
/home/lz/nfs/rootfs是主机的共享目录(即rootfs),192.168.1.2代表的是主机ip,192.168.1.3代表开发板ip,192.168.1.10是网关,eth0是主机和开发板相接的网卡。注意这是一整行没有换行,改完save一下。
保存后,用boot启动linux
U-Boot&boot
2)挂载nfs文件系统
在linux系统里也可以挂载nfs文件
sudo mount -t nfs
192.168.1.2:/home/lz/nfs/rootfs /nfs/test
安装32位运行库
sudo apt-get install libc6:i386
cd /etc/apt/sources.list.d
echo "deb http://archive.ubuntu.com/ubuntu/ raring main restricted universe multiverse" &ia32-libs-raring.list
apt-get update
apt-get install ia32-libs
rm /ia32-libs-raring.list
apt-get update
sudo apt-get install gcc-multilib
安装交叉编译器
$sudo apt install gcc-arm-linux-gnueabi
$sudo apt install gcc-arm-linux-gnueabihf
交叉编译tslib1.4
对触摸屏信号的获取、校正、滤波处理,均采用开源的tslib,本文采用的tslib版本为最新的tslib1.4(可以从本文提供的链接中下载tslib1.4)。
1.将下载好的tslib1.4拷贝到/home/lz/transplant目录下(可以根据自己的系统选择某一目录),然后执行解压缩命令
tar -vxf tslib-1.4.tar.gz
切换到tslib目录:
安装交叉编译tslib必须的一些工具(可以先查看是否已安装,ubuntu16.04自带这些工具,可跳过)
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool
2.利用脚本写编译过程
在tslib文件夹下新建文件configTslib14.sh
vi configTslib14.sh
内容如下:
make clean && make distclean
echo "ac_cv_func_malloc_0_nonnull=yes" &arm-linux.cache
CC=/usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-gcc ./configure --host=arm-linux --prefix=/opt/tslib1.4 --cache-file=arm-linux.cache
make && make install
然后运行configTslib14.sh
./configTslib14.sh
执行结束后,我们查看一下是否安装成功,执行命令:
ls /opt/tslib1.4
如果出现bin,etc,include,lib这4个目录,如下图所示,说明交叉编译并安装tslib成功。
交叉编译QT库
将下载的qt-everywhere-opensource-src-5.7.0.tar.gz执行如下命令解压:
tar -vxf qt-everywhere-opensource-src-5.7.0.tar.gz
cd qt-everywhere-opensource-src-5.7.0
修改交叉编译架构用到的信息:
gedit qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
修改如下图所示:
# qmake configuration for building with arm-linux-gnueabi-g++
MAKEFILE_GENERATOR
+= incremental
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM = linux #eglfs
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
= arm-linux-gnueabi-gcc
= arm-linux-gnueabi-g++
QMAKE_LINK
= arm-linux-gnueabi-g++
QMAKE_LINK_SHLIB
= arm-linux-gnueabi-g++
# modifications to linux.conf
= arm-linux-gnueabi-ar cqs
QMAKE_OBJCOPY
= arm-linux-gnueabi-objcopy
= arm-linux-gnueabi-nm -P
QMAKE_STRIP
= arm-linux-gnueabi-strip
load(qt_config)
创建一个脚本文件,用于生成Makefile,执行命令
gedit autoConfigure.sh
输入下面内容并保存:
./configure \
-prefix /opt/arm-qt \
-qmldir /opt/arm-qt/qml2 \
-release \
-opensource \
-confirm-license \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-zlib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-pkg-config \
-no-separate-debug-info \
-make tools \
-skip qtvirtualkeyboard \
-I/opt/tslib1.4/include \
-L/opt/tslib1.4/lib
执行命令:
chmod 777 qt.configure.sh
./autoConfigure.sh
上述命令自动生成Makefile文件。
执行命令启动编译:
编译大概四十分钟
编译结束后,执行安装命令:
sudo make install
将/opt/arm-qt 和/opt/tslib1.4 拷贝到开发板的文件系统中对应的目录中。
设置QT的交叉编译环境
安装qtcreator
进入qtcreator开发环境
在菜单中选择Tools——Options,在弹出的对话框中,选择Build & Run,选择标签Compilers,按下图设置,选择C++交叉编译器,如下图所示:
切换到Qt Versions标签,点击“Add”按钮,选择qmake,如图所示:
选择完成,按“OK”按钮,设置如图所示:
切换到Kits标签,点击“Add”按钮,然后设置如下图所示:
在4412开发板上配置tslib并交叉编译一个能够在4412开发板上运行的QT应用程序
把字库Ubuntu_L.ttf 等字库拷贝到 /opt/arm-qt/lib/fonts
在开发板串口命令窗口中输入:
vi /etc/profile
将其修改为以下内容:
export TSLIB_ROOT=/opt/tslib1.4
export QT_ROOT=/opt/qt-5.7.0
export TSLIB_TSDEVICE=/dev/input/event2
export TSLIB_TSEVENTTYPE=input
export TSLIB_CONFFILE=/opt/tslib1.4/etc/ts.conf
export TSLIB_PLUGINDIR=/opt/tslib1.4/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export QWS_MOUSE_PROTO=tslib:/dev/input/event2
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:$TSLIB_ROOT/lib:$TSLIB_ROOT/lib/
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
export QT_QPA_GENERIC_PLUGINS=tslib
保存退出,执行命令(一定要执行,否则可能报错):
source /etc/profile
然后在串口命令窗中输入 vi /opt/tslib1.4/etc/ts.conf 来配置触摸屏
把第二行的注释去掉,把ts设置成输入模式(注意把前面的空格也去掉)
将编译得到的可执行文件拷贝到开发板中文件系统的/bin目录,运行该程序。
注意:不用开发板的触摸屏输入设备不一样,如tiny4412是dev下的1-wire字样的输入设备。需要修改TSLIB_TSDEVICE。
QT5.7.0 arm开发环境搭建
参考文章http://blog.csdn.net/singleroot/article/details/.创建项目创建一个c++项目,但是发现平台没有arm的平台,需要我们自己添加,...
移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)
目前网上的大多数 QT 移植教程还都停留在 qt4.8 版本,或者还有更老的 Qtopia ,但是目前 Qt 已经发展到最新的 5.7 版本了,我个人也已经使用了很长一段时间的 qt5.6 for w...
在Linux中分别安装应用于不同平台的QT:PC;嵌入式X86;ARM。
这三者PC版、嵌入式X86版和ARM版的区别主要体现在:当configure时分别加了不同的参数,具体区别是:...
转载地址:http://blog.csdn.net/lizuobin2/article/details/
目前网上的大多数 QT 移植教程还都停留在 qt4.8 版本,或者还...
*版权证明: 只允许上传png/jpeg/jpg/gif格式的图片,且小于3M
*详细原因:
交 基于&em&QT&/em& 的&em&嵌入式&/em&界面开发 10积分 立即下载 ...
转自http://blog.csdn.net/hechao3225/article/details/
经过为期3天的编译、移植,终于将Qt5.7成功移植到iTop4412开发板,板载e...
&em&嵌入式Qt&/em&实战教程,包括并不限于: 1、&em&嵌入式Qt&/em&实战教程. 2、&em&嵌入式Qt&/em&实战教程程序源代码。
QT5.5移植到ARM全攻略
没有更多推荐了,嵌入式 - 随笔分类 - DoubleLi - 博客园
随笔分类 - 嵌入式
摘要: 硬盘录像机(DVR)作为监控系统的核心部件之一,在10年里高速发展,从模拟磁带机的替代品演变成具有自己独特价值的专业监控数字平台,并被市场广泛接受。监控系统伴随DVR这些年的发展向着IP化、智能化发展。 根 据行业用户的需求,DVR由以下几个方向需要被行业关注:1、DVR的编码方式向更高压缩效率的标
摘要: 在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域: bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。 bit2
摘要: http://wenku.baidu.com/link?url=LIVcT1AQL0IgVF1xan5Zy9rXarCBo66hj7OXSxM1ap7FpssO4c3sd1pZd8azfBPr3PBy8I-QA4Nipeo20ThH4sHh5M4Fr0RlM-fCqrRyZpO
摘要: ARM是英国的芯片设计公司,其最成功的莫过于32位嵌入式CPU核 ARM系列,最常用的是ARM7和ARM9,ARM公司主要提供IP核,就是CPU的内核结构,只包括最核心的部分,并不是完整的处理器. ARM把这个核卖给各大半导体公司,如 Pllips 三星 ,ATMEL 等等,许多公司,甚至Intel
摘要: 要想在Linux下读写芯片的I2C寄存器,一般需要在Linux编写一份该芯片的I2C驱动,关于Linux下如何编写I2C驱动,前一篇文章《手把手教你写Linux I2C设备驱动》已经做了初步的介绍,并且留下了两个疑问尚未解决,第一个是如何对Linux提供的I2C操作函数进行进一步封装,实现对芯片寄存
摘要: SPI写寄存器操作: staticvoid mcp251x_write_reg(struct spi_device *spi, uint8_t reg, uint8_t val) { struct mcp251x *chip = dev_get_drvdata(&spi-&dev); int ret
摘要: 这一问题来自项目中一个实际的需求:我需要在Linux启动之后,确认我指定的芯片寄存器是否与我在uboot的配置一致。 举个例子:寄存器地址:0x负责对DDR2的时序配置,该寄存器是在uboot中设置,现在我想在Linux运行后,读出改寄存器的值,再来检查该寄存器是否与uboot的配置
摘要: 参考链接:http://blog.csdn.net/liukang325/article/details/ /dev/mem:物理内存的全镜像。可以用来访问物理内存。由于应用运行都在用户空间,使用的是虚拟内存,不能直接访问物理地址空间,通过/dev/mem文件可以用来访问系统的全部寻
摘要: 大多数的内核里面都有会对GPIO的操作,而且内核里面对GPIO进行配置也很方便,要什么功能就配置成什么就可以了。 还有一些寄存器是内核没有配置到的,但是我们要操作怎么办,内核里面也定义了相关的接口函数。 在u-boot中操作某个寄存器: [cpp] view plain copy print? re
摘要: http://wpp9977777.blog.163.com/blog/static// 串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题,RS232则是其中最简单最常用的通讯方式。但是初学者往往搞不清有关的名词如UART和RS232或RS485之间
摘要: 【背景】 之前就听过TTL,一直没搞懂其和RS232的区别。 最近,打算去买个USB转RS232的芯片,结果找到此产品: 六合一多功能USB转UART串口模块CP2102 usb TTL485 232互转自恢复 正面: 背面: 其中的: 以及引脚说明: 都提到了,不仅仅支持RS232,还支持TTL。
摘要: 复位电路的工作原理在书本上有介绍,51单片机要复位只需要在第9引脚接个高电平持续2us就可以实现,那这个过程是如何实现的呢?在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。 开机的时候为什
摘要: 平台为hi35XX,在Liunx下借助wireless_tools和wpa_supplicant(因为现在的无线WIFI网络大多是wpa加密。所以需要移植wpa_supplicant工具)等工具实现wifi的过程。 一、移植wireless_tools 1. 下载并编译wireless_tools
摘要: 内容: 介绍 WPA Supplicant Wireless Tools 针对每个ESSID的网络配置 4.a. 介绍 目前您可以使用我们提供的wireless-tools 或wpa_supplicant工具来配置无线网络。请记住重要的一点是,您对无线网络的配置是全局性的,而非针对具体的接口。 wp
摘要: 最近在研究WiFi联盟的多屏互动协议Miracast,其中需要用到wpa_supplicant,编译中遇到了一些问题,经过一下午的折腾也都解决了,下面分享给各位。 一、编译需要用到三个库源码包,分别是wpa_supplicant, openssl, libnl 1. wpa_supplicant是我
摘要: 在uboot串口台输入printenv 可以分区以及其他信息,如下 hisilicon # printenv bootdelay=1baudrate=115200ethaddr=00:00:23:34:45:66bootfile=&uImage&UPDATE=netupdate JVS-HI3518
摘要: 移植openssl-0.9.8za cp ../wpa_supplicant-2.5/patches/openssl-0.9.8za-tls-extensions.patch .patch -p1 & openssl-0.9.8za-tls-extensions.patch./config --pr
摘要: 网线网卡可以工作在多种模式下,以实现不同的功能。主要模式(mode)有:master managed monitor ad-hoc repeater secondary 【master】 master模式即常见的AP模式,无线模块本身作为WIFI热点,让其它设备以无线的方式接入构建LAN/WAN 。
摘要: Web服务器boa配置文件参数说明 boa的配置文件是/etc/boa/boa.conf。Port:boa服务器监听的端口,默认的端口是80。如果端口小于1024,则必须是 root用户启动服务器。Listen:绑定的ip地址。不使用这个参数时,将绑定所有的地址。User:连接到服务器的客户端的身份
摘要: 介绍 版本:hostapd-2.5.tar.gz 下载地址:http://w1.fi/releases/hostapd-2.5.tar.gz 依赖:libnl openssl 移植 libnl移植 wget http://www.infradead.org/~tgr/libnl/files/libn
摘要: 64G-128G的tf卡文件系统格式为exfat,而hi3518e默认只支持fat32格式的tf卡。为了挂载64G以上的tf卡,只能将sd卡先格式化成FAT32。鉴于exfat性能比FAT32强,因此考虑移植exfat驱动到海思3518e平台,这样就不用强制格式化tf卡。 拷贝驱动源码到内核 # c
摘要: Linux 中的设备有2种类型:字符设备(无缓冲且只能顺序存取)、块设备(有缓冲且可以随机存取)。这些设备中,有些设备是对实际存在的物理硬件的抽象,而有些设备则是内核自身提供的功能(不依赖于特定的物理硬件,又称为&虚拟设备&)。每个设备在 /dev 目录下都有一个对应的文件(节点)。 常见设备及相应
摘要: 根据strip的功能表示,strip经常用来去除目标文件中的一些符号表、调试符号表信息,减少包的大小.我自己做了一函数库,同样的代码生成了一个mylib.so和一个mylib.a文件,之后使用了 strip mylib.so 和strip mylib.a 这两条命令去除一些符号表和调试符号表信息, 
摘要: 最近有位 VPS 客户抱怨 MySQL 无缘无故挂掉,还有位客户抱怨 VPS 经常死机,登陆到终端看了一下,都是常见的 Out of memory 问题。这通常是因为某时刻应用程序大量请求内存导致系统内存不足造成的,这通常会触发 Linux 内核里的 Out of Memory (OOM) kill
摘要: 1、ARM型号的发展历史 2、单片机、工业上一般使用RTOS(实时操作系统),Linux、Android用在影音娱乐等对实时性要求没那么高的场合; 3、ARM内核版本号和Soc版本号是由ARM确定的,而Soc型号是由半导体公司确定的; 4、Cortex系列ARM产品线分割成了3个系列,这个是市场细分
摘要: 模块参数 引导模块时,可以向它传递参数。要使用模块参数加载模块,这样写: insmod module.ko [param1=value param2=value ...] 为了使用这些参数的值,要在模块中声明变量来保存它们,并在所有函数之外的某个地方使用宏MODULE_PARM(variable,
摘要: CGIC是C语言CGI库函数,用于编写CGI程序 CGIC 主要完成以下功能: * 对数据进行语法分析 * 接收以 GET 和 PSOT 两种方式发送的数据 * 把 FORM 中的不同域连接成连续的串 * 为检索 FORM 数据而提供字符串 , 整数 , 浮点以及单项和多项选择功能 * 为数字字段提
摘要: 原载地址:http://3633188.blog.51cto.com/095 1.POST和GET 一个CGI程序在于服务器之间的信息传输和数据传输一般通过两种方法,即POST和GET。具体是哪一种方法这需要通过CGI的一个环境变量REQUEST_METHOD判断(具体怎么判断
摘要: 一、CGI技术1.1 CGI的提出 CGI是外部扩展应用程序与WWW服务器交互的一个标准接口。按照CGI标准编写的外部扩展应用程序可以处理客户端(一般是WWW浏览器)输入的协同工作数据,完成客户端与服务器的交互操作。这在实际应用中非常有用,如可以编写CGI外部扩展程序来访问外部数据库,客户端用户可以
摘要: 版权声明:本文为博主原创文章,未经博主允许不得转载。 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[+] 目录(?)[+] 主要思路是:通过web post方式将升级文件交给CGI程序处理,然后通过mtd工具实现设备在线升级. 1.页面部分 &form target=&_blan
摘要: U-boot的环境变量: bootcmd 和bootargs u-bootcmdbootcmd是uboot自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数。 现在我的bootcmd的参数设置为:bootcmd=nf
摘要: 什么是ramfs?ramfs是空间规模动态变化的RAM文件系统。它非常简单,是用来实现Linux缓存机制(缓存page cache and dentry cache)的文件系统。通常情况下,Linux的所有文件在内存中都有缓存。需要读取的数据页从支撑存储设备(block device)中读取后,缓存
摘要: uImage的制作是使用的u-boot工具mkimage,build完u-boot后也会将mkimage build出來到/tools目录下,可以直接拿來用,它的作用就是在zImage的前面加上64个字节的头,让u-boot能够识别要加载内核的类型、加载地址等。 基本格式:mkimage -A ar
摘要: 根据说明文档“How To Write Shared Libraries&介绍, 有四种方法: 1. 在方法声明定义时,加修饰:__attribute__((visibility(&hidden&))) 就是说将不公开的函数都加上这个属性,没加的就是可见的 2. gcc 在链接时设置 -fvisib
摘要: 说道“动态库版本兼容”,很多人头脑中首先蹦出的就是“Dll Hell”。啊,这曾经让人头疼的难题。时至今日,这个难题已经很好地解决了。 在进一步讨论之前来思考一个问题:Linux下为什么没有让人头痛的“DllHell”?回答这个问题,非常easy,因为——Linux下根本没有dll! 哈哈,当然这只
摘要: 我们很多c程序在windows下是以dll形式展现的,在linux则是以so 形式展现的。 windows一般不会因为编译dll文件的编译器版本不同而出先dll文件不能执行。 但是linux下,不同版本内核的linux下编译的c程序,在其他版本的linux下就容易出现无法执行的问题。主要可能是支持程
摘要: objdump -tT libName.so | grep symbel symbolName nm -D libName.so | grep symbel symbolName 很多非常熟悉windows 进程依赖那个dll,使用depends,linux使用ldd命令。查看函数windows使用
摘要: linux下查看动态链接库依赖关系的命令 x86:ldd *.so arm:arm-linux-readelf -d *.so 实际例子:以项目中用到的库librtsp.so分析:lijun@ubuntu:~/workspace$ arm-hisiv100nptl-linux-ld -d librt
摘要: 今天在帮同事查看一个问题时, 需要用到ldd, 于是就顺便看了一下ldd的实现. 好在ldd本身只是一个脚本, 而不是executable, 可以直接查看实现的代码.根据注释: 21 # This is the `ldd' command, which lists what shared libra
摘要: U盘挂载命令U盘插入的时候会显示启动信息,启动信息中sda: sda1指U盘的设备名为sda1dev设备目录下有一个sda1设备文件,此设备文件就是我们插入的U盘,我们将这个设备文件挂载到Linux系统的/mnt/udisk1这个目录下,这样我们即可以通过访问/mnt/udisk1目录来读写U盘,挂
摘要: 在网上有很多关于讲mdev的自动挂载基本上都是一个版本,经过测试自动挂载确实可行,但是关于自动卸载mdev似乎不能很好的支持,经过修改已经可以做到与udev的效果相似。不能在挂载的目录中进行热插拔,否则会出现问题,不过此问题在下次插入U盘时不会造成影响,可能对U盘有损坏。 本文介绍了mdev与ude
摘要: Linux的文件系统是异步的,也就是说写一个文件不是立刻保存到介质(硬盘,U盘等)中,而是存到缓冲区内,等积累到一定程度再一起保存到介质中。如果没有umount就非法拔出U盘,程序是不知道的,fopen,fwrite等函数都依然返回正确,知道操作系统要把写介质的时候,才会提示I/O错误。可是很多数据
摘要: 例: [cpp] view plain copy status = system(&./test.sh&); [cpp] view plain copy status = system(&./test.sh&); [cpp] view plain copy [cpp] view plain copy
摘要: 以下是网上看到的解决办法:http://blog.csdn.net/heqiuya/article/details/7870554 [plain] view plain copy 其实是掉电保护,之前挂在的SD变成了制度文件,只需要将SD卡重新挂载一遍就OK了. FAT: Filesystem pa
摘要: 一、土八路做法: SD 卡一旦插入系统,内核会自动在/dev/下创建设备文件:sdcard。 但有时可能时用户在拨出卡前并没有umount的话,第二次插卡进去后系统创建的就不是sdcard设备文件了,而是mmcblk0, mmcblk1p1, mmcblk2p1, 或mmcblk3p1.所以只需用i
摘要: 我们可以通过 1) gdb prog_name -& r 用在逐步调试自己的程序时 2) gdb -& attach process_id 正在运行中的后台程序突然卡在了某个地方,先ps再gdb/attach 3) gdb prog_name core 程序core掉了 三种方式对一个程序进行调试;
摘要: 只做工作总结备忘之用。 正在烧镜像,稍总结一下进来改bug遇到的问题。 一个项目里要用到L3 switch的nat,vrrp功能,但实地测试中偶然出现write file挂死的情况,但不是必现。交付在即,于是加调试信息,反复跑配置的脚本,定位bug。 一,期初怀疑是vtysh与vrrpd进程通信出现
摘要: 摘要:在使用多线程程序时,有时会遇到程序功能异常的情况,而这种异常情况并不是每次都发生,很难模拟出来。这时就需要运用在程序运行时跟踪线程的手段,而linux系统的LWP和strace命令正是这种技术手段。本文对LWP和strace命令做了简明扼要的介绍,并通过一个实例来说明如何运用。总而言之,LWP
摘要: 方法一:strace -fp pid , 可以跟踪所有线程, 进程的系统调用。 [root@xxxx]strace -p 24091 Process xxx attached - interrupt to quit [ Process PID=24091 runs in 32 bit mode. ]
摘要: pthread_kill: 别被名字吓到,pthread_kill可不是kill,而是向线程发送signal。还记得signal吗,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数。 int pthread_kill(pthread_t threa
摘要: pstack.sh: #! /bin/sh if [ -z $1 ] then echo &gdb script for print stack& echo &usage: $0 pid& exit fi gdb --batch --quiet -x cmds -p $1 cmds: echo /n
摘要: #!/bin/bash if (( $# & 1 )) then echo &usage: `basename $0` pid& 1&&2 exit 1 fi if [[ ! -r /proc/$1 ]] then echo &Process $1 not found.& 1&&2 exit 1 f
摘要: pstack.sh 改进版本 #!/bin/bashif (( $# & 1 )) ; then echo &usage: `basename $0` pid& 1&&2 exit 1fi if [[ ! -r /proc/$1 ]] ; then echo &Process $1 not foun
摘要: Eclipse GNU ARM Plugin 作者 kiya 几个月前写了一篇《用Eclipse替代Keil&IAR来开发ARM应用》,介绍了GNU ARM这个优秀的Eclipse插件。但由于配置过于复杂,不太实用。好消息是这个插件升级了,提供了只有商业IDE才有的向导功能
摘要: 1)如何使用strace+pstack利器分析程序性能?http://www.cnblogs.com/bangerlee/archive//2476190.html此文有详细介绍怎么用strace和pstack2)Linux下多线程查看工具(pstree、ps、pstack)?h
摘要: 0.最常用 pstree:[root@iZ25dcp92ckZ temp]# pstree -a|grep multe | | `-multepoolser | | `-multepoolser | | `-2*[{multepoolser}]1. & top可以显示所有系统进程按u, 再输入相应的
摘要: 有两种方法:第一种:pstack 进程ID 第二种,使用gdb 然后attach 进程ID,然后再使用命令 thread apply all bt 第三种:strace -f -p pid 该方法和pstack类似 第四中:gcore pid ,输出core文件,gdb cmd corefile 两
摘要: 1、TOP命令,找到占用CPU最高的进程 $ top top - 20:11:45 up 850 days, 1:18, 3 users, load average: 1.04, 1.01, 0.99 Tasks: 61 total, 1 running, 60 sleeping, 0 stoppe
摘要: http://www.itshanghai.net/technology//article_238.html http://www.itshanghai.net/technology//article_238.html 另外,可以参考这个http://www.ce
摘要: 如何定位死循环或高CPU使用率(linux) 确定是CPU过高 使用top观察是否存在CPU使用率过高现象 找出线程 对CPU使用率过高的进程的所有线程进行排序 ps H -e -o pid,tid,pcpu,cmd --sort=pcpu |grep xxx 得到如下结果,其中线程2909使用了7
摘要: 1. 使用 pstree -p PID ps aux | grep firefox | grep -v grepcharles
? S 19:17 0:00 /bin/sh /usr/lib/firefox-3.5.4/run-mozilla.sh /
摘要: 简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。 输出信息含义 执行netstat后,其输出结果为 从整体上看,netstat的
摘要: 首先,ps -A查看你所查看进程的进程号 ps -A 加入进程号为pid 那么使用如下脚本,可以打印该进程使用的虚拟内存和物理内存: root@Storage:/mnt/mtd# cat rss.sh #!/bin/shwhile true do cat /proc/pid/stat | awk -
摘要: 啥也不说,直接上脚本: root@Storage:/mnt/mtd# cat cpu.sh #!/bin/shwhile truedo ps -H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu sleep 1doneroot@Storage:/mnt
摘要: [-] 内存问题排查手段及相关文件介绍重点 1 procsysvmmin_free_kbytes 2 procsysvmdrop_caches 3 procsysrq-trigger 31对echo m procsysrq-trigger输出的解析 4 cat procslabinfo 5 cat
摘要: 一. CPU 过高或死锁导致系统卡死 1. CPU占用过高 (1)开线程太多导致CPU占用过高,系统卡死 解决:优化应用层业务逻辑,有些业务不必开线程就不开 (2)频繁清缓存导致读spi-flash频繁,引起CPU过高 解决:在内核中文件系统部分进行处理,不去清缓存,然后在应用层用后台服务进程清缓存
摘要: 1、在uboot中我可以添加自己的命令,添加的方法是找到一个uboot的命令,然后模仿着去增加属于自己的命令代码以及实现函数就可以 2、记住在使用printf进行调试的时候,在遇到指针或者字符串的时候最好使用“%x”,以为我不知道指针或者字符串中是否包含不可见字符,如果有不可见字符会导致错误,而且错
摘要: 1.线程属性 线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。 1. 名称:: pthread_attr_init/p
摘要: pthread_create 创建线程时,若不指定分配堆栈大小,系统会分配默认值,查看默认值方法如下: # ulimit -s8192# 上述表示为8M;单位为KB。 也可以通过# ulimit -a 其中 stack size 项也表示堆栈大小。ulimit -s value 用来重新设置stac
摘要: 背景:有时需要单看某个进程的CPU及占用情况,有时需要看整体进程的一个占用情况。一、 linux ps命令,查看某进程cpu和内存占用率情况[root@test vhost]# ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND解
摘要: 原文链接 简介 进程无法启动,软件运行速度突然变慢,程序的&Segment Fault&等等都是让每个Unix系统用户头痛的问题,本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的&疑难杂症&。 truss和strace用来 跟踪一个进程的系统
摘要: 原文链接 常用内存泄露检测手段有 1 mtrace 2 memwatch 3 mpatrol 4 dmalloc 5 dbgmem 6 valgrind 7 Electric Fence dmalloc是一个简单易用的C/C++内存leak检查工具,以一个运行库的方式发布。 dmalloc能够检查出
摘要: 话说“工欲善其事,必先得其器”,用C语言写程序,最怕遇到个什么内存泄漏,内存越界访问了,心里那个急啊。。。 如果在i368-linlux上,valgrind工具是首选,但在arm-linux平台上,如何呢,dmalloc就是一个不错的选择。当然,IBM的purify是另外一个级别的选手,不提也罢。
摘要: 下面是我实际在开发环境里面做的dmalloc移植时候的一些随笔 配置PC的dmalloc环境1. 首先把源码包打开,进入dmalloc文件夹2. ./configure 配置Makefile,我是加了线程选项的,所以我的是./configure --enable-threads3. 生成Makefi
摘要: 一谈到内存泄露, 多数程序员都闻之色变。 没错, 内存泄露很容易引入, 但很难定位。 以你我的手机为例(假设不经常关机), 如果每天泄露一些内存, 那么开始的一个星期, 你会发现手机好好的, 当内存泄露积累到一定程度, 那就是各种卡死了, 系统异常, 最后死机, 不得不重启。 如果搞开发, 遇到内存
摘要: 前言 所有使用动态内存分配(dynamic memory allocation)的程序都有机会遇上内存泄露(memory leakage)问题,在Linux里有三种常用工具来检测内存泄露的情況,包括: 1. mtrace mtrace是三款工具之中是最简单易用的,mtrace是一个C函數,在&mch
摘要: 欢迎转载,转载请注明出处:http://forever.blog.chinaunix.net一、编写linux下应用程序的时候,有时候会用到高精度相对时间的概念,比如间隔100ms。那么应该使用哪个时间函数更准确呢? 1、time 该函数返回的是自1970年以来的秒数,显然精度不够,不能使用 2、g
摘要: 一、_IO, _IOR, _IOW, _IOWR 宏的用法与解析 在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:bit31~bit30 2位为
摘要: 原文地址:http://blog.csdn.net/cserchen/article/details/5503556 Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错, 这里总结一些可能的原因和解决方案,给需要的朋友: 说道undefined refe
摘要: 我们在使用printk()函数中使用日志级别为的是使编程人员在编程过程中自定义地进行信息的输出,更加容易地掌握系统当前的状况。对程序的调试起到了很重要的作用。(下文中的日志级别和控制台日志控制级别是一个意思) printk(日志级别 &消息文本&);这里的日志级别通俗的说指的是对文本信息的一种输出范
摘要: 上一节的程序很振奋人心,我们自己实现了一个myprintk打印函数。但是这个函数存在一个致命的缺陷,那就是只能使用一次cat /proc/mymsg命令来读取mylog_buf的值。这是因为读到最后会出现:mylog_r == mylog_w,表示缓冲区为空,下一次就不能在读到数据了。在本节里面我们
摘要: 首先我们需要弄清楚proc机制,来看看fs/proc/proc_misc.c这个文件,从入口函数开始看: proc_misc_init(void) #ifdef CONFIG_PRINTK { struct proc_dir_entry * entry = create_proc_ent
摘要: 1、基本原理 (1)在UBOOT里设置console=ttySAC0或者console=tty1 这里是设置控制终端,tySAC0 表示串口, tty1 表示lcd(2)内核用printk打印 内核就会根据命令行参数来找到对应的硬件操作函数,并将信息通过对应的硬件终端打印出来! 2、printk的使
摘要: 话说“工欲善其事,必先得其器”,用C语言写程序,最怕遇到个什么内存泄漏,内存越界访问了,心里那个急啊。。。 如果在i368-linlux上,valgrind工具是首选,但在arm-linux平台上,如何呢,dmalloc就是一个不错的选择。当然,IBM的purify是另外一个级别的选手,不提也罢。
摘要: 1. 下载源码: http://valgrind.org/downloads/valgrind-3.9.0.tar.bz2 2. 加压缩: mkdir sw cd sw tar zxf valgrind-3.9.0.tar.bz2 3. 修改代码: cd valgrind-3.9.0/ vim co
摘要: Valgrind 概述 体系结构 Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (p
摘要: 名称: dd使用权限: 任何使用者dd 这个指令在 manual 里的定义是 convert and copy a file使用方式:dd [option]查看帮助说明dd --help或是info dd 查看版本:dd --version输入或输出dd if=[STDIN] of=[STDOUT]
摘要: x86平台有ldd可以很方便的查看对库的依赖关系,但在嵌入式linux环境中没有这个命令,替而代之是 CC=$(CROSS_COMPILE)gcc LDD=$(CROSS_COMPILE)readelf 范例 [plain] view plain copy $(CROSS_COMPILE)reade
摘要: 1. 下载及解压valgrind-3.9.0 2.CC=/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin/arm-hisiv200-linux-gcc CPP=/opt/hisi-linux/x86-arm/arm-hisiv200-linu
摘要: 1. wget http://valgrind.org/downloads/valgrind-3.9.0.tar.bz2 tar xvf valgrind-3.9.0.tar.bz2 cd valgrind-3.9.0 apt-get install automake ./autogen.sh 2.
摘要: Valgrind 是一款 Linux下(支持 x86、x86_64和ppc32)程序的内存调试工具,它可以对编译后的二进制程序进行内存使用监测(C语言中的malloc和free,以及C++中的new和delete),找出内存泄漏问题。 Valgrind 中包含的 Memcheck 工具可以检查以下的
摘要: /*com_writer.c*/#include &uart_api.h& int main(void){  char buff[BUFFER_SIZE]; if((fd=open_port(HOST_COM_PORT))&0) /*打开串口*/ { perror(&open seri
摘要: /*串口自收自发程序主函数*/#include&uart_api.h&int main(){  char buff[BUFFER_SIZE]; char buff2[]=&Hello NUAA2440!\n&; int nread, if((fd=open_port(TA
摘要: 在linux中,所有的设备文件一般都位于“/dev”下,串口1和串口2对应的设备名依次为“/dev/ttyS0”, “/dev/ttyS1”,而且USB转串口的设备名通常为“/dev/ttyUSB0”,在linux下对设备的操作方法与对文件的操作方法一样。 串口开发步骤: 串口的设置主要是设置str
摘要: 1、LINUX下TTY、CONSOLE、串口之间是怎样的层次关系?具体的函数接口是怎样的?串口是如何被调用的? 2、printk函数是把信息发送到控制台上吧?如何让PRINTK把信息通过串口送出?或者说系统在什么地方来决定是将信息送到显示器还是串口? 3、start_kernel中一开始就用到了pr
摘要: linux 串口输出调试 在某些情况下,需要同时对两台或多台Linux主机进行管理和操作。如果手头缺少足够多的键盘和显示器,那么通过一台机器的串口对其余主机进行控制不失为一种快捷、有效的方法。 下面就以两台主机为例,简单介绍一下配置方法。假设这两台主机分别为A和B,它们都运行Red Hat 9.0。
摘要: Uboot_Kernerl_Add_Watch_Dog: U-Boot 2010.06 (Nov 01 2013 - 15:28:44) DRAM: 128 MiBCheck spi flash controller v350... FoundSpi(cs1) ID: 0xEF 0x40 0x18
摘要: 使用RTP传输H264的时候,需要用到sdp协议描述,其中有两项:Sequence Parameter Sets (SPS) 和Picture Parameter Set (PPS)需要用到,那么这两项从哪里获取呢?答案是从H264码流中获取.在H264码流中,都是以&0x00 0x00 0x01&
摘要: // 【h264编码出的NALU规律】// 第一帧 SPS【0 0 0 1 0x67】 PPS【0 0 0 1 0x68】 SEI【0 0 0 1 0x6】 IDR【0 0 0 1 0x65】// p帧 P【0 0 0 1 0x61】// I帧 SPS【0 0 0 1 0x67】 PPS【0 0 0
摘要: 一、MP4格式基本概念 MP4格式对应标准MPEG-4标准(ISO/IEC14496) 二、MP4封装格式核心概念 1 MP4封装格式对应标准为 ISO/IEC 14496-12(信息技术 视听对象编码的第12部分: ISO 基本媒体文件格式/Information technology Codin
摘要: 前面的文章中提到了通过RTSP(Real Time Streaming Protocol)的方式来实现视频的直播,但RTSP方式的一个弊端是如果需要支持客户端通过网页来访问,就需要在在页面中嵌入一个ActiveX控件,而ActiveX一般都需要签名才能正常使用,否则用户在使用时还需要更改浏览器设置,
摘要: 最近需要做一个RTSP流媒体播放器,研究了一下,封装了一个RTSP播放类CRTSPPlayer,解码库采用ffmpeg。由于需求比较简单,时间也有限,目前只实现了播放、停止、暂停几个基本的接口。下面是基于CRTSPPlayer类实现的简单RTSP播放器。 目前视频只测试了H264格式,其它格式的视频
摘要: 死锁:一种情形,此时执行程序中两个或多个线程发生永久堵塞(等待),每个线程都在等待被 其他线程占用并堵塞了的资源。例如,如果线程A锁住了记录1并等待记录2,而线程B锁住了记录2并等待记录1,这样两个线程就发生了死锁现象。 gdb调试死锁的方法: gdb attach pid thread apply
摘要: 系统启动后,虽然nand驱动表现正常,但是最后挂载rootfs时候出错: Kernel command line: root=/dev/mtdblock2 rw init=/linuxrc console=ttyAMA1,115200 mem=64M rootfstype=yaffs2。。。。。。。
摘要: Linux下修改MAC地址 方法一: 1.关闭网卡设备ifconfig eth0 down2.修改MAC地址ifconfig eth0 hw ether MAC地址3.重启网卡ifconfig eth0 up 方法二:以上方法一修改后linux重启后MAC又恢复为原来的,为了下次启动时修改后的MAC
摘要: 先看代码吧,有代码有真相,具体代码的demo(下载demo的朋友请勿在网上上传我的demo,谢谢)下载连接为: http://download.csdn.net/detail/skdkjxy/8071721 注:代码demo是一个完整的工程,直接进行make x86或者make arm 就可以到目录
摘要: 开源世界有许多优秀的开源项目,我选取其中十个最优秀的、最轻量级的C语言的项目,希望可以为C语言开发人员提供参考。 十个最值得阅读学习的C开源项目代码 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测
摘要: 在fs的目录/etc/下添加文件hosts,然后内容修改如下: 192.168.11.12 qycam.com ping qycam.com 解析为192.168.11.12
摘要: a、tftp server服务器配置与使用 方法1: #udpsvd -vE 069 tftpd -c /root& //上面的0表示对所有ip地址都进行侦听 方法2: #vi/etc/inetd.conf 69 dgram udp nowait root tftpd tftpd -c /root
摘要: [html] view plain copy [html] view plain copy [html] view plain copy /********************************** (C) COPYRIGHT *******************************
摘要: 版权声明:本文为博主原创文章,未经博主允许不得转载。 版权声明:本文为博主原创文章,未经博主允许不得转载。 [html] view plain copy [html] view plain copy /********************************** (C) COPYRIGHT 
摘要: [html] view plain copy [html] view plain copy
摘要: [html] view plain copy [html] view plain copy [html] view plain copy * File Name : get_gw.c * Author : skdkjzz * Date :  * Description : lin
摘要: [html] view plain copy [html] view plain copy
摘要: [html] view plain copy [html] view plain copy
摘要: [html] view plain copy [html] view plain copy 具体Demo代码可以下载:http://download.csdn.net/detail/skdkjxy/0;仅供参考,谢谢~ from:http://blog.csdn.net/skdkjzz/
摘要: 1、Stage1 start.S代码结构 u-boot的stage1代码通常放在start.S文件中,他用汇编语言写成,其主要代码部分如下 (1) 定义入口。: 该工作通过修改连接器脚本来完成。 (2)设置异常向量(Exception Vector)。 (3)设置CPU的速度、时钟频率及终端控制寄存
摘要: 首先贴出来我的bootargs的设置(注没有换行符!!!): setenv bootargs noinitrd mem=64M root=/dev/nfs init=/linuxrc rw nfsroot=10.10.2.59:/opt/rootfs/ ip=10.10.1.156:10.10.2.
摘要: 嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误 嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误
14:19 184人阅读 评论(0) 收藏 举报
14:19 184人阅读 评论(0) 收藏 举报 分类:
摘要: 如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs, 一个基于内核的动态设备文件系统,他首次出现在2.3.46内核中。M
摘要: 本文以通俗的方法阐述 udev 及相关术语的概念、udev 的配置文件和规则文件,然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和查询设备信息的实例。本文会使那些需要高效地、方便地管理 Linux 设备的用户受益匪浅,这些用户包括 Linux 最终用户、设备驱
摘要: /* * 线程同步——互斥量 * 创建两个线程,使用互斥量使任一时刻只有一个线程对全局变量进行 操作 * Lzy
*/ #include &stdio.h& #include &stdlib.h& #include &pthread.h& pthread_mutex_t mute
摘要: 互斥锁(mutexlock): 最常使用于线程同步的锁;标记用来保证在任一时刻,只能有一个线程访问该对象,同一线程多次加锁操作会造成死锁;临界区和互斥量都可用来实现此锁,通常情况下锁操作失败会将该线程睡眠等待锁释放时被唤醒 自旋锁(spinlock): 同样用来标记只能有一个线程访问该对象,在同一线
摘要: 读写锁比mutex有更高的适用性,可以多个线程同时占用读模式的读写锁,但是只能一个线程占用写模式的读写锁。1. 当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞;2. 当读写锁在读加锁状态时,所有试图以读模式对它进行加锁的线程都可以得到访问权,但是以写模式对它进行枷锁
摘要: fork()与vfock()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别: 1. fork ():子进程拷贝父进程的数据段,代码段 vfork ( ):子进程与父进程共享数据段 2. fork ()父子进程的执行次序不确定 vfork 保证子进程先运行,在调用exec 或exit 之前与
摘要: 理想情况下,您应该明白在您的系统中运行的每一个进程。要获得所有进程的列表,可以执行命令 ps -ef(POSIX 风格)或 ps ax(BSD 风格)。进程名有方括号的是内核级的进程,执行辅助功能(比如将缓存写入到磁盘);所有其他进程都是使用者进程。您会注意到,就算是在您新安装的(最小化的)系统中,
摘要: 环形缓冲区是嵌入式系统中十分重要的一种数据结构,比如在一个视频处理的机制中,环形缓冲区就可以理解为数据码流的通道,每一个通道都对应着一个环形缓冲区,这样数据在读取和写入的时候都可以在这个缓冲区里循环进行,程序员可以根据自己需要的数据大小来决定自己使用的缓冲区大小。 环形缓冲区,顾名思义这个缓冲区是环
摘要: 由于公司项目的需要,我们需要在原有的MII的基础上,修改为RMII模式,针对hi3518c平台,我的网卡是LAN8701需要修改的地方有如下几个: 首先我的uboot中env是: bootargs=mem=64M console=ttyAMA0,115200 root=/dev/mtdblock4
摘要: NULL RAM : mkdir ramdisk_test 临时挂在点 dd if=/dev/zero of=123 bs=1k count=10000 建立空硬盘 losetup /dev/loop0 123 挂在临时硬盘 mke2fs -m 0 /dev/loop0 格式化此硬盘 munt –o
摘要: MII网络uboot编译说明一:编译生成默认的uboot1. 进入到uboot目录a. cd /home/satan/Hi3518_SDK_V1.0.7.0/osdrv/uboot2. 新建临时文件夹a. mkdir u-boot-2010.06-mii-debug3. 解压a. tar -xzvf
摘要: 首先贴出来我的bootargs的设置(注没有换行符!!!): setenv bootargs noinitrd mem=64M root=/dev/nfs init=/linuxrc rw nfsroot=10.10.2.59:/opt/rootfs/ ip=10.10.1.156:10.10.2.
摘要: uboot1.1.6\include\configs\smdk6410.h #define CONFIG_BOOTCOMMAND&nand read 0xcxx500000;bootm 0xc0008000& #define CONFIG_BOOTCOMMAND &
摘要: Linux应用层直接操作GPIO 在一个老手的指导下,应用层可以直接操作GPIO,具体指设置GPIO的输入输出以及输出电平高或者低。这个大大地提高了灵活性,官方的文档有GPIO Sysfs Interface for Userspace,GPIO Sysfs。 这里我记录一下使用过例子: 1 2 3
摘要: 1、UNIX Network Programming环境搭建 Unix NetWork Programming――环境搭建(解决unp.h等源码编译问题) http://blog.csdn.net/a/article/details/6724121 注:按照连接操作即可,编译要加
摘要: getifaddrs()和struct ifaddrs的使用,获取本机IP 博客分类: Linux C编程 ifaddrs结构体定义如下: C代码 struct ifaddrs { struct ifaddrs *ifa_ /* Next item in list */ char *ifa
摘要: linux下的ioctl函数原型如下: #include &sys/ioctl.h& int ioctl(int handle, int cmd, [int *argc, int argv]) 函数成功返回0,失败返回-1. 其相关命令接口如下: 类别 Request 说明 数据类型 套 接 口 S
摘要: 在如今众多的黑客技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。 用过windows平台上的sniffer工具(例如,netxray和sniffer pro软件)的朋友可能都知道,在共享式的局域网中,采用sniffer工具简直可以对网络中的所有流量一览无余!Sniffer工具实际上就
摘要: iwpriv工具通过ioctl动态获取相应无线网卡驱动的private_args所有扩展参数 iwpriv是处理下面的wlan_private_args的所有扩展命令,iwpriv的实现上,是这样的,=&main=&set_private=&iw_get_priv_info获取wireless网卡所
摘要: 目前我所知道的在linux下操作GPIO有两种方法: 1. 编写驱动,这当然要熟悉linux下驱动的编写方法和技巧,在驱动里可以使用ioremap函数获得GPIO物理基地址指针,然后使用这个指针根据ioctl命令进行GPIO寄存器的读写,并把结果回送到应用层。这里提供一点程序片断供大家参考: [cp
摘要: 最近要深一步用到GPIO口控制,写个博客记录下Kernel层的GPIO学习过程! 一、概念 General Purpose Input Output (通用输入/输出)简称为GPIO,或 总线扩展器。也就是芯片的引脚,当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GP
摘要: 硬件平台:飞思卡尔MX258开发板 操作系统:Linux2.6.31 WIFI: RT2860 USB WIFI模组 交叉编译环境:gcc version 4.1.2 调试步骤: 第一步:测试USB HOST接口 在menuconfig中将USB HOST设置为内核模式: 重新编译内核后启动开发板,
摘要: http://wenku.baidu.com/link?url=oKj45hKtIANfoVzmoFAmWEvESHiqgWysxPASelpzaXk35gWb1ILci-_D9u6M12pfg45DPBirLqJJDfynamiwF1yYd-mzdnlkquKFOhZS-mi
摘要: 1. Linux下有两类时钟: 1.1 实时钟RTC 它由板上电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟。当操作系统关机的时候,用这个来记录时间,但是对于运行的系统是不用这个时间的。 1.2 系统时钟 “System clock”也叫内核时钟或者软件时钟,是
摘要: 1. 注册软中断当然是通过open_softirq 例子如下: 软中断TIMER_SOFTIRQ的中断处理函数为:run_timer_softirq 之所以成为softirq,是因为这些中断是由硬件中断来间接触发的,如何间接触发的呢:硬件中断处理函数--&对软中断的相应位置位--&唤醒ksoftir
摘要: 下面以4GB TF卡为例,通过WinHex工具进行分析,其空间分配如下图所示: FAT32把目录当做文件来管理,所以没有独立的目录区,所有的文件目录项都是在数据区里面的。 DBR(DOS BOOT RECORD,DOS引导记录),位于柱面0,磁头1,扇区1,即逻辑扇区0 ; DBR包括: o 一个引
摘要: 简单的来说,根文件系统包括虚拟根文件系统和真实根文件系统。在Kernel启动的初始阶段,首先去创建虚拟的根文件系统,接下来再去调用do_mount来加载真正的文件系统,并将根文件系统切换到真正的文件系统,也即真实的文件系统。 在传统的Windows机器上目录结构中,可能会包括C:或者D:盘,而他们一
摘要: 今天本来是烧写内核,结果一不小心把uboot也整不能用了,无奈之下只好重新烧个uboot,等都弄好以后,发现系统还是启动不了,原来是启动参数设置不对,于是找到了这篇文章,//是我添加的内容。 原文地址:http://blog.chinaunix.net/u3/94312/showart_192363
摘要: 下面两篇文章是ARM9论坛上的讲解ramdisk文件系统的很不错的文章 今天做了个试验,让Linux2.6.29.4从ramdisk根文件系统启动成功,总结一下。 好像友善之臂把内核源码目录里的uImage目标给注释了,以前在论坛里看到过有人说,直接make uImage好像提示没有uImage的目
摘要: uImage的制作是使用的u-boot工具mkimage,build完u-boot后也会将mkimage build出來到/tools目录下,可以直接拿來用,它的作用就是在zImage的前面加上64个字节的头,让u-boot能够识别要加载内核的类型、加载地址等。 基本格式:mkimage -A ar
摘要: 第三章第二节 mkimage工具制作Linux内核的压缩镜像文件,需要使用到mkimage工具。mkimage这个工具位于u-boot-2013. 04中的tools目录下,它可以用来制作不压缩或者压缩的多种可启动镜像文件。mkimage在制作镜像文件的时候,是在原来的可执行镜像文件的前面加上一个1
摘要: 今天做了个试验,让Linux2.6.29.4从ramdisk根文件系统启动成功,总结一下。其中涉及的内容较多,很多东西不再详述,如需深入研究请查阅相关资料(百度或谷歌一下一大堆)。开发环境:Fedora 9交叉编译工具链:arm-linux-gcc 4.3.2 with EABI嵌入式Linux内核
摘要: U-Boot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件。mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,记录参数所指定的信息,这样U-Boot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的
摘要: 在嵌入式系统中,Linux内核和根文件系统一般都与bootloader一起烧写在flash芯片中,系统启动后,bootloader将Linux内核压缩到RAM中,并把压缩的根文件系统复制到RAM中,然后启动内核,由内核解压缩根文件系统,并调用文件系统中的应用程序和脚本文件启动系统。 在烧写Linux
摘要: 这几天参考国嵌的实验手册和网上的资料完成了u-boot定制、内核定制、ramdisk根文件系统的制作,并成功。趁热打铁,总结一下。本文引用了很多网络上的文章,就不一一注明了。感谢各大侠的帮助,如有雷同,望见谅。 开发环境:红帽企业版5 交叉编译工具链:arm-linux-gcc4.3.2 嵌入式Li
摘要: STEP 1:构建目录结构 创建根文件系统目录,主要包括以下目录/dev /etc /lib /usr /var /proc /tmp /home /root /mnt /bin /sbin /sys #mkdir /home/rootfs#cd /home/rootfs #mkdir dev et
摘要: 使用Busybox-1.2.0制作根文件系统 cross-3.3.2 make-3.8.1 STEP 1: 创建根文件系统目录,主要包括以下目录/bin,/etc,/dev,/mnt,/sbin,/usr,/sbin,/tmp /proc,/lib. /usr下有bin, sbin, lib, lo
摘要: 1、BusyBox简介 BusyBox 是很多标准 Linux 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet;有些人将 BusyBox 称为 Linux 工具里的“
摘要: Build Busybox as a static binary(no shared libs),如果选择上,则busybox将以静态形式进行编译,否则将以动态方式编译。此外,还需要对交叉编译环境进行配置,选择其中的Cross Compiler Perfix,输入交叉编译器的前缀,我们的嵌入式平台上
摘要: 在Linux下,一切皆文件,设备也不例外,为了管理这些设备,系统为它们各自都编了号,而每个设备号又分为主设备号和次设备号。主设备号用来区分不同类型的设备,而次设备号用来区分同一类型内的多个设备(及其设备分区)。一个Linux系统,当前所有注册设备的主设备号可以通过/proc接口查看: 字符设备与块设
摘要: 版本:v1.2 摘要 本文主要介绍了如何在嵌入式Linux系统运行的时候,进行升级整个Linux系统,包括uboot,kernel和rootfs。以及简介Linux中的已有的通用的Nor Flash驱动m25p80,和简介mtd util以及相关工具mtdinfo,flash_erase,flash
摘要: 上篇文章中我们已经能够通过u-boot启动内核了,但是没有能够启动成功,从内核的log中可以看出,内核启动失败的原因是没有挂载到root文件系统,本文将使用busybox制作根文件系统并打包成ramdisk供u-boot启动内核使用。 (1)制作根文件系统 使用busybox构建根文件系统的步骤可以
摘要: 开发环境:Fedora 9交叉编译工具链:arm-linux-gcc 4.3.2 with EABI嵌入式Linux内核版本:2.6.29.4-FriendlyARM。昨天写贴子的时候具体记不清了,今天起来启动开发板用uname -r查一下,就是叫做2.6.29.4-FriendlyARM,帖子已经
摘要: U-BOOT 在启动内核时,会向内核传递一些参数.BootLoader 可以通过两种方法传递参数给内核,一种是旧的参数结构方式(parameter_struct),主要是 2.6 之前的内核使用的方式。另外一种就是现在的 2.6内核在用的参数链表 (tagged list) 方式。这些参数主要包括,
摘要: uboot 与系统内核中MTD分区的关系: 分区只是内核的概念,就是说A~B地址放内核,C~D地址放文件系统,(也就是规定哪个地址区间放内核或者文件系统)等等。 1:在内核MTD中可以定义分区A~B,C~D。。。。。。并予以绝对的地址赋值给每个分区。我们可以来看看在内核中是怎样来对MTD进行分区的:
摘要: 这几天一直在看MMU部分,现在有了基本的认识,还不深入,解决了初级问题,并且仿照vivi完成了一个测试实例,对深入理解和验证推论的结果很有帮助。在学习的过程中,体会到几种方法还是比较实用的: --ARM9TDMI(ARM9TDMI Core) --ARM940T(ARM9TDMI core plus
摘要: 1,中断的基本概念 CPU与外设之间传输数据的控制方式通常有3种:查询方式,中断方式和DMA方式。查询方式的优点是硬件开销小不需要额外的硬件支持只是通过软件不断的轮询,使用起来也就比较简单,但在此方式下,CPU要不断地查询外设的状态,当外设未准备好时,CPU就只能循环的等待,不能执行其他程序,这样就
摘要: 一、S3C2410内置的UART控制器S3C2410内部具有3个独立的UART控制器,每个控制器都可以工作在Interrupt(中断)模式或DMA(直接内存访问)模式,也就是说UART控制器可以在CPU与UART控制器传送数据的时候产生中断或DMA请求。并且每个UART控制器均具有16字节的FIFO
摘要: #define A (*(volatile unsigned long *)0x)... A = 0x01;... · 117-bit general purpose I/O ports / 24-ch external interrupt source The S3C2410X h
摘要: bootm命令只能用来引导经过mkimage构建了镜像头的内核镜像文件以及根文件镜像,对于没有用mkimage对内核进行处理的话,那直接把内核下载到连接脚本中指定的加载地址0x再运行就行,内核会自解压运行(不过内核运行需要一个tag来传递参数,而这个tag是由bootloader提供
摘要: //zz//#######################################################################zz-rtl8188eu的linux-usb-wifi调试及驱动编译150210zz-Write: @ 22:11:14 @201
摘要: 硬件平台:飞思卡尔MX258开发板 操作系统:Linux2.6.31 WIFI: RT2860 USB WIFI模组 交叉编译环境:gcc version 4.1.2 调试步骤: 第一步:测试USB HOST接口 在menuconfig中将USB HOST设置为内核模式: 重新编译内核后启动开发板,
摘要: 这是我uboot的环境变量设置,在该设置下可以运行initram内核(从内存下载到nandflash再运行),但是运行nfs根文件系统的时候一直出错,各种错误。查看了很多资料后猜想应该是uboot传递给linux内核的参数有问题,也就是bootargs的设置有问题。 #printenv bootar
摘要: 1、在uboot中我可以添加自己的命令,添加的方法是找到一个uboot的命令,然后模仿着去增加属于自己的命令代码以及实现函数就可以 2、记住在使用printf进行调试的时候,在遇到指针或者字符串的时候最好使用“%x”,以为我不知道指针或者字符串中是否包含不可见字符,如果有不可见字符会导致错误,而且错
摘要: NULL RAM : mkdir ramdisk_test  临时挂在点 dd if=/dev/zero of=rootfs.ramdisk bs=1k count=10000 建立空硬盘//15000(15M) losetup /dev/loop0 rootfs.ramdisk 挂在临时硬盘 mk
摘要: uboot+linux的整体方案 开发板的datasheet中都有详细的地址空间的划分,其中比较重要的两块是:DDR地址空间和Flash地址空间。DDR空间是系统和应用的运行空间,一般由linux系统自身进行使用和管理;Flash空间是系统和应用载体的存放空间,一般需要在使用前进行划分,由应用开发者
摘要: 嵌入式linux中使用DHCP功能描述busybox中udhcpc的默认script脚本地址为#define DEFAULT_SCRIPTCONFIG_UDHCPC_DEFAULT_SCRIPT#define CONFIG_UDHCPC_DEFAULT_SCRIPT &/usr/share/udhc...
摘要: 备注:内核版本:2.6.30.9busybox版本:1.15.2PC Linux和开发板Linux的工作用户:root1. 配置内核:[*] Networking support ---&Networking options ---& Packet socket Unix domain socket...
摘要: 这里的所谓的裸机编程指的是为“无OS支持的硬件系统编程”,而实际的编程工作肯定需要一个环境,通常这样的情况中,编程和编译的环境叫做“宿主机”,最终的程序在“目标机”上运行(交叉编译)。而OS环境编程指的是最终运行的程序是在有操作系统支持的环境中运行,而编程和编译的环境,可能是运行程序的机器(本地编译...
摘要: 假设有一种开发环境,一块板子,除了串口,没有任何外部出入输出设备,没有sd卡,没有网线,这个时候如果你想跟这块板子传输交互文件,要怎么办?根据modem所采用的文件传输协议:xmodem,ymodem,zmodem将其分类xmodem:简单通用,传输信息单位是“包=128B”,传输速度慢,适合电话线...
摘要: 本文转载自http://useless20.blog.163.com/blog/static//嵌入式linux系统与主机通过串口传输文件我想如果要从PC机下载东西到开发板的嵌入式linux系统里面,很多人首先会想到用tftp sftp等网络工具从网口下载。...
摘要: uboot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件。mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,记录参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪...
摘要: 1、下载源码2、解压源码tar -xzf lrzsz-0.12.20.tar.gz3、检查配置./configure4、修改Makefile有三个Makefile需要修改,分别是lrzsz-0.12.20/Makefile,lrzsz-0.12.20/lib/Makefile,lrzsz-0.12....
摘要: 版本:v1.2CrifanLi摘要本文主要介绍了如何在嵌入式Linux系统运行的时候,进行升级整个Linux系统,包括uboot,kernel和rootfs。以及简介Linux中的已有的通用的Nor Flash驱动m25p80,和简介mtd util以及相关工具mtdinfo,flash_erase...
摘要: 版本:v1.2CrifanLi摘要本文主要介绍了嵌入式开发过程中,将固件从PC端下载到开发板中的各种方式,主要包括NFS挂载,Nand Flash和Nor Flash,USB,RS232,网卡NIC等方式。本文提供多种格式供:在线阅读HTMLHTMLsPDFCHMTXTRTFWEBHELP下载(7z...
摘要: 嵌入式系统烧写uboot/bootloader/kernel的一般方法本文介绍了在嵌入式系统中烧写uboot/bootloader/kernel 的一般方法,以及如果uboot或者内核出现错误, www.2cto.com 引导失败等情况时如何重新烧写uboot/kernel.烧写uboot/kern...
摘要: Linux下USB烧写uImage kernel1.启动开发板,进入u-boot:(如果开发板中没有系统,可以通过用SD卡方式启动开发板进入)U-Boot 2011.06 (Mar 19 2012 - 08:45:34) for MINI6410CPU: S3CMHzFclk = 6...
摘要: 一、u-boot中环境变量与uImage中MTD的分区关系分区只是内核的概念,就是说A~B地址放内核,C~D地址放文件系统,(也就是规定哪个地址区间放内核或者文件系统)等等。一般我们只需要分3-4个区,第一个为boot区,一个为boot参数区(传递给内核的参数),一个为内核区,一个为文件系统区。(但...
摘要: uboot 与系统内核中MTD分区的关系:分区只是内核的概念,就是说A~B地址放内核,C~D地址放文件系统,(也就是规定哪个地址区间放内核或者文件系统)等等。1:在内核MTD中可以定义分区A~B,C~D。。。。。。并予以绝对的地址赋值给每个分区。我们可以来看看在内核中是怎样来对MTD进行分区的:ar...
摘要: insight gdbhttp://ftp.twaren.net/Unix/Sourceware/说明:GDB可视化调试工具http://gro.clinux.org/frs/?group_id=327ftp://ftp.cn.kernel.org/pub/linux/kernel/v2.6/LIN...
摘要: 在Windows系统中查看内存的使用情况很简单,想必大家都已经耳熟能详了,那么在linux系统如何查看内存使用情况呢?下面和大家分享在Linux下查看内存使用情况的free命令: [root@scs-2 tmp]# free total used free shared buffers cach...
摘要: 一.基本原理CGI:通用网关接口(Common Gateway Interface)是一个Web服务器主机提供信息服务的标准接口。通过CGI接口,Web服务器就能够获取客户端提交的信息,转交给服务器端的CGI程序进行处理,最后返回结果给客户端。组成CGI通信系统的是两部分:一部分是html页面,就是...
摘要: 下载回源码包以后,就3个文件:cgic.c 函数库capture.c 一个很简单的CGI例子,仅仅输出两行提示文字cgictest.c 一个演示读取form表单数据的CGI例子首先在vc6里创建一个空的win32静态库cgic,然后添加cgic.c,编译后得到cgic.lib库创建一个空的conso...
摘要: 我把网页挂载到nfs下面的文件中(需要新建一个文件www),不过这样很方便!安装过程==========================================================1)在www.boa.org下载boa-0.94.13.tar.gz并解压# tar -zxvf b...
摘要: 1. sd卡升级命令mmcinit0fatload mmc 0:1 0 uzImage.bin 80000fatload mmc 0:1 1000000 initrd.gz 580000bootm 02.U-Boot脚本可以保存成nfs.script,放在tftp的根目录setenv bootarg...
摘要: 环境:ubuntu 13.04一、首先制作sd启动盘:插入SD卡sudo dd iflag=dsync oflag=dsync if=tiny210v2-uboot.binof=/dev/mmcblk0 seek=1tiny210v2-uboot.bin来自:http://www.arm9home....
摘要: 1、 移植mtd-utils:a) 下载utd-utils 下载地址为ftp://ftp.infradead.org/pub/mtd-utils/b) 交叉编译mtd-utilsi 修改Makefile CROSS=arm-linux-ii makeiii 查看下mtd-utils-1.0.0目录下...
摘要: 版本:v1.2摘要本文主要介绍了如何在嵌入式Linux系统运行的时候,进行升级整个Linux系统,包括uboot,kernel和rootfs。以及简介Linux中的已有的通用的Nor Flash驱动m25p80,和简介mtd util以及相关工具mtdinfo,flash_erase,flash_e...
摘要: 我的手机sd卡需要分成两个分区,在windowxp下面死活搞不成。主要的问题是,window只认识sd卡的第一个分区。有人用修改驱动程序,让windows把sd卡认成日立的microdisk,分区和格式化也可以完成。但是在我的笔记本上,sd读卡器是笔记本自带的,不是接在usb接口上的,这个方法也行不...
摘要: 犹记得当年读书的时候,老师说单片机、ARM、DSP有互通之处,都是CPU,但听老师讲都听不懂。 我该如何理解他们,并找出他们的异同呢?我们来看看行内人的看法: ICer,从事ARM CPU的SOC设计 按我的理解说几句吧,希望能说薄一点。 首先,说CPU,中央处理器,本质就是一个集成电路,实...
摘要: 以前刚学习单片机时,经过一订的编程,能实现很多不同的功能,当时就觉得单片机真的是神通广大。后来接触到DSP,发现DSP处理数字在通信上,更加方便。于是我就很好奇的问自己,DSP和单片机,究竟有什么区别看到某论坛一篇关于DSP和单片机区别的帖子,经过仔细整理,现在再次介绍DSP与单片机的区别,同时让自...
摘要: RBL,UBL,Uboot的关系1)RBL=ROM Bootloader,UBL=user Bootloader。2)RBL为TI固化在芯片ROM中的bootloader,OMAP上电启动过后首先将运行RBL,然后通过RBL加载UBL,再通过UBL加载uboot,而uboot就是用来加载Linux内...
摘要: 0) gdb源码下载:http://ftp.gnu.org/gnu/gdb/1) 编译arm-linux-gdb 指定交叉编译工具链的位置 export PATH=$PATH:/usr/local/arm/3.4.1/bin 开始配置和编译 $cd gdb-6.6 $./configure --ta...
摘要: 快乐虾http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools )欢迎转载,但请保留作者信息1.1.1什么是VELTVELT的全称是Visual EmbedLinuxTools,它是一个visual studio插件,...
摘要: 快乐虾http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools )欢迎转载,但请保留作者信息本文仅适用于vs2013 + velt-0.1.41.1什么是VELTVELT的全称是Visual EmbedLinuxToo...
摘要: 微处理器:S5PV210操作系统:linux3.0.8前言: 在产品中,基本上都要屏蔽arm开发板中linux系统的对外通信,只应该通过产品的相关APP做相关操作。 因此需要把该APP添加到linux中,使之开机启动。1,实现 a,打开文件:/etc/init.d/rcS。 b,在该文件末尾...
摘要: 操作系统:ubuntu10.04前言: 为了提高对设备的易操作性,很多设备中提供pc机直接通过浏览器操作设备的功能。这就需要在设备中实现web服务器。 现在在嵌入式设备中所使用的web服务器主要有:boa、thttpd、mini_httpd、shttpd、lighttpd、goaheand、app...
摘要: 烧写uboot/kernel本文介绍了在嵌入式系统中烧写uboot/bootloader/kernel 的一般方法,以及如果uboot或者内核出现错误,引导失败等情况时如何重新烧写uboot/kernel.烧写uboot/kernel的方式一般有两种,一种是在linux本身(shell中),直接将u...}

我要回帖

更多关于 bootargs是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信