LINUX内核的启动可分为三个阶段:第一阶段主要是进行cpu和体系结构的检查、cpu本身的初始化以及页表的建立等;第二阶段主要是对系统中的一些基础设施进行初始化;最后则是更高层次的初始化,如根设备和外部设备的初始化。
LINUX内核支持很多的硬件体系结构如X86、ARM、PowerPC、M68K等,但由于新的硬件平台不断出现,根据新的硬件平台移植内核是嵌入式系统构建的必须工作。2.4.18内核对没有s3c2410处理器的支持,因此移植过程中需要对新的硬件平台进行定义,添加内核对硬件平台的支持,这也是移植工作的难点。
以fs2410为例,检查以下修改是否完成
移植LINUX内核到嵌入式POS系统硬件平台涉及的主要文件及目录有:
Makefile 指定系统框架、交叉编译工具链arch/ARM/config.in添加系统平台的选项以及处理器相关定义
arch/ARM/Makefile 添加系统平台编译选项
arch/ARM/mm 初始化内存页表内存映射
arch/ARM/mach-s3c2410/*添加s3c2410平台的初始化函数
include/asm-ARM/arch-s3c2410/* 添加s3c2410寄存器和板子的定义
arch/ARM/kernel/ Makefile添加对s3c2410处理器的支持
arch/ARM/kernel/debug-ARMv.S 定义串口打印函数
arch/ARM/kernel/entry-ARMv.S 定义中断处理子程序
arch/ARM/kernel/head-ARMv.S 内核代码入口
arch/ARM/tools/mach-types定义系统号
arch/ARM/boot/compressed/head-s3c2410.S 添加引导代码
arch/ARM/boot/compressed/Makefile 添加编译选项
arch/ARM/boot/Makefile 添加内核映像生成选项
1、设备入口可以查/dev/ttyS* 、/dev/*uart*(主设备号4或者204),第一串口一般为ttyS0、*uart0等
USB转串口设备一般为/dev/ttyUSB*(主设备号188),第一口一般为ttyUSB0
2、以上/dev下只是串口的入口,具体设备存在与否需要按关键字(ttyS、ttyUSB、uart)查询/proc/devices以确定。
3、串口为通讯端口,有多个串口设备时,要确定正在被连接的串口是哪个,需要检测一下,如:
cat /dev/ttyS0
linux 提供了各种工具, Linux 使用 ttySx 作为一个串口设备的名称。例如,COM1 (DOS/Windows 名字) 是 ttyS0, COM2 是 ttyS1 等等。任务: 显示检测到的系统串口支持
简单的运行 dmesg 命令
$ dmesg | grep tty
输出:
[ 37.531286] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 37.531841] 00:0b: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 37.532138] 0000:04:00.3: ttyS1 at I/O 0x1020 (irq = 18) is a 16550A
setserial 命令
setserial 是一个程序用于设定并/或报告某个串口关联的配置信息。该信息包括串口用到的I/O 端口和中断号,以及Break键是否应被解释为Secure Attention Key 等等。 仅仅是输出如下的命令:
$ setserial -g /dev/ttyS[0123]
输出:
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x1020, IRQ: 18
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
带-g选项的setserial帮助找到你的Linux板子上的物理串口。
Linux 串口控制台程序
一旦串口被确定了,你就能使用许多的工具来配置Linux板子:
minicom- 用于控制modem和连接到dump 设备的最好的串口通信程序。
wvidial or other GUI dial up networking program - 一个内建智能PPP 拨号器。
getty / agetty - agetty 打开一个 tty 端口, 提示登录名称并调用 /bin/login 命令。
grub / lilo configuration - 配置串口为系统控制台。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)