![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
系统移植
Tinghua_M
你若安好,我便晴天!
展开
-
U-Boot启动内核分析
U-Boot启动内核分析先来引用一下这篇介绍“ARM Linux内核启动要求”的文章ARM Linux Kernel Boot Requirements,是ARM Linux内核的维护者Russell King写的。 CPU register settings o r0 = 0. o r1 = machine type number. o r2 =原创 2012-06-06 10:09:16 · 671 阅读 · 0 评论 -
Cotex-A8开发板之Telnet移植
通过网线远程访问Cotex-A8开发板,在开发过程中,给项目小组的每一个成员都带来极大的方便,在这里给大家介绍一种基于telnet协议远程访问开发板的方式。Telnet的简介:协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式,它为用户提供了在本地计算机上完成远程主机工作的能力,在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在t原创 2012-09-04 08:27:15 · 3554 阅读 · 0 评论 -
u-boot向linux内核传递启动参数(详细)
U-BOOT 在启动内核时,会向内核传递一些参数.BootLoader 可以通过两种方法传递参数给内核,一种是旧的参数结构方式(parameter_struct),主要是 2.6 之前的内核使用的方式。另外一种就是现在的 2.6内核在用的参数链表 (tagged list) 方式。这些参数主要包括,系统的根设备标志,页面大小,内存的起始地址和大小,RAMDISK的起始地址和大小,压缩的RAMDI转载 2012-08-26 22:41:51 · 1690 阅读 · 0 评论 -
make menuconfig出错
Ubuntu 下编译Linux内核时,在命令行输入:make menuconfig后,出现如下错误:*** Unable to find the ncurses libraries or the*** required header files.*** 'make menuconfig' requires the ncurses libraries.- ******转载 2012-08-27 16:33:19 · 1059 阅读 · 0 评论 -
udev无法挂载设备名sda的U盘
我们在做系统移植时,需要挂载U盘,我们可以手动挂载, mount -t vfat /dev/sda1 /mnt 但是,使用UDEV,我们可以实现自动挂载。 首先,在你的跟文件系统的rcS中要添加两句话: echo /sbin/mdev > /proc/sys/kernel/hotplug /sbin/mdev -s 这样我们的内核支持热插拔事件。原创 2012-08-29 10:08:50 · 3046 阅读 · 0 评论 -
libz was not found
编译libid3tag error:libz was not found *** You must first install zlib (libz) before you can build this package. *** If zlib is already installed, you may need to use the LDFLAGS *** environment var原创 2012-09-07 09:04:09 · 4177 阅读 · 0 评论 -
smdkc100之u-boot 2010.03代码的分析1
以下用以记录uboot 2010.03代码的分析过程,目标是smdkc100,本文参考了网上有关s3c6410开发板有关源码的分析,在此感谢无私奉献,如有错误,欢迎指正。强调,内容与三星原厂提供的uboot-2010.03有更改的地方,因为外接外设的区别,特别是nand_flash、外接网卡芯片和LCD芯片以下纯代码情景分析,请结合uboot的功能结构图和内存分布图查看代码,这样会更加容易原创 2012-11-29 17:02:49 · 1609 阅读 · 0 评论 -
smdkc100之u-boot 2010.03代码的分析2
下面是一条跳转指令,代码这里不贴,但是其中的代码很重要,在lowlevel.S中实现比如说点亮LED灯、关闭watchdog、关闭中断、串口初始化、系统时钟初始、nand flash初始化、内存控制器初始化。不过说实在的,去仔细分析这些初始化的过程,对于你对如何控制硬件有很大的帮助, 对于这个函数,所要说的东西太多,会在后面的文章中单独分析它,现在先知道功能就好,没有它代码无法启动。*/原创 2012-12-25 14:48:11 · 821 阅读 · 0 评论 -
smdkc100之u-boot 2010.03代码的分析3
2.第二阶段代码分析(代码在lib_arm目录下的board.c里面,start_armboot函数) 1)初始化CPU及外围硬件 voidstart_armboot (void){ init_fnc_t **init_fnc_ptr; char *s;#ifdefined(CONFIG_VFD) || defined(CONFIG_LC原创 2012-12-25 15:00:19 · 1246 阅读 · 0 评论 -
SVN简明课程
SVN简明课程1. 版本控制介绍 1.1. 什么是版本控制 版本控制系统用于保存编写开发应用程序时的文档的各个修订版(revision)。 版本控制也称作Revision Control System(RCS)。 名词解释:修订版(revision):可以认为是某个文件在其生命周期内各个保存的快照,每个快照和一个时间区间对应。版本库(Reposi转载 2013-04-08 20:45:31 · 1067 阅读 · 0 评论 -
关于警告:CLEANMARKER node found at 0x0042c000 has totlen 0xc != normal 0×0
如果挂载jffs2的时候,出现类似于:CLEANMARKER node found at 0x0042c000 has totlen 0xc != normal0×0 的问题,则见到网上说的办法:在嵌入式Linux系统中挂载 jffs2根文件系统二、制作根文件系统的JFFS2镜像。使用MTD工具中的mkfs.jffs2命令,具体做法如下:mkfs.jf转载 2013-06-18 14:46:59 · 3235 阅读 · 0 评论 -
FS_S5PC100之madplay移植
FS_S5PC100平台内核2.6.35交叉编译器 arm-none-linux-gnueabi-gcc-4.5.1一.驱动的添加1.FS_S5PC100平台上WM9714 ALSA 移植:这个驱动在内核中支持,我们只需要进行简单的配置就行了,配置如下:修改 sound/soc/s3c24xx/Kconfig,使其支持FS_S5PC100平台 2原创 2012-10-20 09:12:08 · 1954 阅读 · 0 评论 -
u-boot2011.09之mkconfig之简析
#!/bin/sh -e# Script to create header files and links to configure# U-Boot for a specific board.## Parameters: Target Architecture CPU Board [VENDOR] [SOC]## (C) 2002-2010 DENX Softw原创 2012-08-25 20:21:22 · 3294 阅读 · 1 评论 -
make menuconfig 时缺少 ncurses-devel 的解决方案
做系统移植,以前用的是公司的虚拟机环境,我在授课过程中也强调要学生去使用公司给的。最近有些时间,自己想去搭建一下环境。现把遇到的一些问题及解决办法罗列一些:sudo apt-get install tftpd-hpasudo apt-get install tftp-hpa sudo apt-get install nfs-kernel-server sud原创 2012-09-03 11:05:10 · 994 阅读 · 0 评论 -
我的binutils工具集
1.addr2line能够把程序地址转换为文件名和行号,前提是这个可执行文件包括调试符号 1 #include 2 3 void foo() 4 { 5 printf("The address of foo() is %p\n",foo); 6 } 7 int main() 8 { 9 foo(); 10 re原创 2012-06-12 08:49:01 · 602 阅读 · 0 评论 -
(volatile unsigned int *)的理解
关于volatile的用法: 1:它的作用是告诉编译器volatile变量是随时可能发生变化的,与volatile变量有关的运算,不要自作主张进行编译优化,以免出错,例如:volatile int i=10; int j = i; int k = i; …… volatile 告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取,因而编转载 2012-01-29 09:38:03 · 1193 阅读 · 0 评论 -
crosstool-ng 编译出错Missing: 'i686-pc-linux-gnu-gcj'or 'i686-pc-linux-gnu-gcj' or 'gcj' : either needed
$ct-ng build[INFO ] Performing some trivial sanity checks[INFO ] Build started 20120819.100858[INFO ] Building environment variables[EXTRA] Preparing working directories[ERROR] Missing:原创 2012-08-19 09:30:07 · 3447 阅读 · 0 评论 -
mount -o nolock
做系统移植时,我们经常使用nfs方式去挂载文件系统,这样可以同步访问开发板以及宿主机相应目录, 有利于交叉开发。但是有时候会有些新奇的想法,可不可以在开发板上挂载另一个宿主机的共享目录 到当前目录下的某一个文件夹,实现同步访问呢? 实践证明是可以的,在开发板命令行输入 mount -o nolock -t nfs 192.168.1.200:/home/kmart/test原创 2012-08-29 09:59:18 · 8656 阅读 · 0 评论 -
crosstool-ng 编译交叉工具链的常见错误及解决办法
1、配置crosstool-ng产生的错误1.1 ncurses headers files were not foundChecking for 'ncurses/ncurses.h'... noChecking for 'ncurses/curses.h'... noChecking for 'ncurses.h'... noChecking for 'curses.h'.转载 2012-08-20 12:06:24 · 8970 阅读 · 0 评论 -
ltrace与strace用法
我们在内核调试的时候,经常想跟踪一下某一个进程的库函数调用或者跟踪每个进程的系统调用,这个时候我们就用到strace和ltrace ltrace能够跟踪进程的库函数调用,它会显现出哪个库函数被调用,而strace则是跟踪进程的每个系统调用. 下面我们还是用最简单的helloworld说明问题: #include intmain (){原创 2012-08-22 21:53:31 · 12556 阅读 · 1 评论 -
linux C库函数与系统调用的区别
Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。可以参考《Linux程序设计》(英文原版为《Beginning Linux Programming》,作者是Neil Matthew和Richard Stones)第三章: Working with files。1。系统调用系统调用提供的函数如open, close,转载 2012-08-23 08:24:49 · 952 阅读 · 0 评论 -
ldr r0, =0xff000fff
ldr r0, =0xff000fff bic r1, pc, r0 /* r1 ldr r2, _TEXT_BASE /* r2 cmp r1, r2 /* compare r1, r2 */ beq call_board_ini原创 2012-08-22 09:12:46 · 2339 阅读 · 1 评论 -
gprof简析
gprof是一个用来统计可执行程序数据的工具.它能帮助用户确定程序在哪个地方耗时过多.被编译器生成指令后的代码将会被gprof捕获并进行计算,在gcc编译过程中使用-pg选项编译就会产生指令化工具,当执行编译后的二进制程序时,就会生成一个profile信息的概要文件.gprof就是用这个文件对程序进行分析的,没有用-pg生成指令化工具的代码是不可测量的.下面是一原创 2012-08-22 21:33:46 · 1112 阅读 · 1 评论 -
Putty打开报错“Invalid Port number”
最近在做系统移植时,需要使用软件Putty,可是不知为什么,却报错,错误信息“Invalid Port number”。最终在网上找了许多资料,解决之,现与大家分享: 打开注册表找到: HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\Sessions\Default%20SettingsPortNumber 由0改为1 就是原创 2012-08-23 18:54:52 · 9347 阅读 · 4 评论 -
s5pv210启动流程简析
手册上关于iROM/iRAM及Bootloader描述如下:The iROM code is placed in internal 64KB ROM. It initializes basic system functions such as clock, stack, and heap.The iROM loads the first boot loader image fr原创 2013-11-20 21:03:45 · 916 阅读 · 0 评论