blogernice

导航

统计

2018年10月25日 #

bootloader简介

摘要: 本文介绍了基于嵌入式系统中的 OS 启动加载程序Boot Loader 的概念、软件设计的主要任务以及结构框架等。一、引言在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:1. 引导加载程序。包括固化在固件(firmw 阅读全文

posted @ 2018-10-25 16:59 blogernice 阅读(530) 评论(0) 推荐(0) 编辑

如何编译.so动态库

摘要: 问:我源文件为main.c, x.c, y.c, z.c,头文件为x.h,y.h,z.h如何编译成.so动态库?编译器用gcc最好能给出详细参数解释,谢谢答:# 声称动代连接库,假设名称为libtest.sogcc x.c y.c z.c -fPIC -shared -o libtest.so# 将 阅读全文

posted @ 2018-10-25 16:57 blogernice 阅读(4397) 评论(0) 推荐(0) 编辑

maugs中1ms的实现

摘要: 1ms的实现 hal_systimer_1ms = (hal_clock_cpu / 2000);除以2000的原因是: C0_COUNT 寄存器作为一个实时的定时器工作,每两个时钟周期增 1。所以hal_clock_cpu要准确,否则系统计时不准确. 系统时间的实现 在magus_sys_time 阅读全文

posted @ 2018-10-25 16:56 blogernice 阅读(104) 评论(0) 推荐(0) 编辑

uboot中usb storage启动方法

摘要: 这种方法比较简单,就是利用uboot自带命令usbboot来实现启动,也算是最粗糙的一种。1.在配置文件中添加一系列有关USB的支持。uboot编译启动后输入usb startusbboot 0x30800000 0:1这里的0是usb设备0,1是第一分区当然,这里肯定会失败,因为usb stora 阅读全文

posted @ 2018-10-25 16:55 blogernice 阅读(2321) 评论(0) 推荐(0) 编辑

SYSCALL functions available in MARS

摘要: SYSCALL functions available in MARS Introduction A number of system services, mainly for input and output, are available for use by your MIPS program. 阅读全文

posted @ 2018-10-25 16:53 blogernice 阅读(163) 评论(0) 推荐(0) 编辑

genstart 脚本学习

摘要: [cpp] view plaincopy #!/bin/bash cp -f $1/start.S . includeS=`grep "^#include.*\.S" $1/start.S` for i in $(echo $includeS | sed "s/#include //g" | tr  阅读全文

posted @ 2018-10-25 16:52 blogernice 阅读(112) 评论(0) 推荐(0) 编辑

内核启动命令行的传递过程

摘要: Linux 内核在启动的时候需要一些参数,以获得当前硬件的信息或者启动所需资源在内存中的位置等等。这些信息可以通过bootloader传递给内核,比较常见的 就是cmdline。以前我在启动内核的时候习惯性的通过uboot传递一个cmdline给内核,没有具体的分析这个过程。最近在分析内核启动过程的 阅读全文

posted @ 2018-10-25 16:52 blogernice 阅读(1017) 评论(0) 推荐(0) 编辑

向UBOOT中移植代码

摘要: 1.首先,将要移植的代码目录(如bootpicsnd)整个拷贝到UBOOT工程中,最好放到对应的board目录下。 2.在bootpicsnd目录里,新建一个Makefile,参考如下: ## (C) Copyright 2000-2007# Wolfgang Denk, DENX Software 阅读全文

posted @ 2018-10-25 16:51 blogernice 阅读(143) 评论(0) 推荐(0) 编辑

start.s打印寄存器值的汇编实现

摘要: /*a0 = addrt2 = *(addr)t4 for right shift*/LEAF(print_reg) li t0,UART0_BASE_ADDR li t1,10 lw t2,0(a0) li t4,32 1: sub t4,4 move t3,t2 srl t3,t4 and t3 阅读全文

posted @ 2018-10-25 16:48 blogernice 阅读(218) 评论(0) 推荐(0) 编辑

PMON链接脚本ld.script分析

摘要: 1.首先我们是通过make tgt=rom CROSS_COMPILE=mips-wrs-linux-gnu- DEBUG=-g来编译的,所以实际上主要调用如下编译命令: ejtag_rom ejtag_rom1 ejtag_ram rom: clean ${START} zloader.o gcc 阅读全文

posted @ 2018-10-25 16:47 blogernice 阅读(235) 评论(0) 推荐(0) 编辑

PMON中autoload自动加载操作系统代码分析

摘要: 龙芯BIOS的最终目的,还是需要加载一个更好的操作系统。当你在启动时不按下任何按键,pmon就会自动地加载缺省设置的操作系统。它的实现代码如下:#ifdef AUTOLOADs = getenv ("al");autoload (s);#elses = getenv ("autoboot");aut 阅读全文

posted @ 2018-10-25 16:46 blogernice 阅读(651) 评论(0) 推荐(0) 编辑

PMON start.S 串口输出函数

摘要: 串口输出东西太重要了,因此,再来仔细地看看串口调用的其它函数,这样做到一目了然,没有别的疑问在里面,就可以做到庖丁解牛游刃有余。像下面的函数:PRINTSTR(" CONFIG=")上面这句,就是输出一串字符到串里显示出来。其实它是一个宏定义,那么它是怎么样实现输出字符串到串口上的呢?立即去找到它的 阅读全文

posted @ 2018-10-25 16:46 blogernice 阅读(447) 评论(0) 推荐(0) 编辑

BootLoader概述

摘要: 本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念、软件设计的主要任务以及结构框架等内容。 一、引言在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:1. 引导加载程序。包括固 阅读全文

posted @ 2018-10-25 16:45 blogernice 阅读(348) 评论(0) 推荐(0) 编辑

u-boot的Makefile分析

摘要: U-BOOT是一个LINUX下的工程,在编译之前必须已经安装对应体系结构的交叉编译环境,这里只针对ARM,编译器系列软件为arm-linux-*。 U-BOOT的下载地址: http://sourceforge.net/projects/u-boot我下载的是1.1.6版本,一开始在FTP上下载了一 阅读全文

posted @ 2018-10-25 16:44 blogernice 阅读(210) 评论(0) 推荐(0) 编辑

BSS段

摘要: BSS(Block Started by Symbol)这个词最初是UA-SAP汇编器(United Aircraft Symbolic Assembly Program)中的一个伪指令,用于为符号预留一块内存空间。该汇编器由美国联合航空公司于20世纪50年代中期为IBM 704大型机所开发。后来B 阅读全文

posted @ 2018-10-25 16:43 blogernice 阅读(363) 评论(0) 推荐(0) 编辑

mips编译出的二进制文件怎么看?

摘要: PMON在编译之后,生成的二进制文件其实也是可以看懂的。 每32位(4个byte)组成一句mips汇编指令, 比如:3c08bf22 lui t0,0xbf22 用UE(或者linux下的hexedit)打开gzrom.bin,可以看到是反着排列的,即为 22 bf 08 3c。 如果想看往一个地址 阅读全文

posted @ 2018-10-25 16:42 blogernice 阅读(253) 评论(0) 推荐(0) 编辑

mips汇编简单实例——一个小计算器

摘要: 其实开始的时候一直在看 mips的指令格式,看了、忘了,没什么效果。 现在通过这个例子,简单训练一下: mips汇编中: 常用寄存器的使用; 系统调用: 1(print_int),4(print_str),5(read_int),10(exit); 算术运算: add,sub,mul,div; 逻辑 阅读全文

posted @ 2018-10-25 16:41 blogernice 阅读(742) 评论(0) 推荐(0) 编辑

UBOOT源码分析及移植

摘要: 本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上:1、u-boot工程的总体结构2、u-boot的流程、主要的数据结构、内存分配。3、u-boot的重要细节,主要分析流程中各函数的功能。4、基于FS2410板子的u-boot移植。实现了NOR Flash和NAND Flash启动,网 阅读全文

posted @ 2018-10-25 16:40 blogernice 阅读(484) 评论(0) 推荐(0) 编辑

setup_arch函数分析

摘要: 在文件 arch/arm/boot/compressed/head.S[2]中 start 为zImage 的起始点,部分代码如下:start:mov r7, r1mov r8, r2…...mov r0, r4mov r3, r7bl decompress_kernelb call_kernelc 阅读全文

posted @ 2018-10-25 16:40 blogernice 阅读(962) 评论(0) 推荐(0) 编辑

SRAM、DRAM、SDRAM的区别

摘要: 为什么dram要刷新, sram不需要? 这个是由于ram的设计类型决定的,dram用了一个t和一个rc电路,导致电容毁漏电和缓慢放电。所以需要经常的刷新来保持数据。 DRAM,动态随机存取存储器,需要不断的刷新,才能保存数据。 而且是行列地址复用的,许多都有页模式。 SRAM,静态的随机存取存储器 阅读全文

posted @ 2018-10-25 16:39 blogernice 阅读(1450) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示