首先上电以后芯片会在固化好的一个地址寻找第一个启动程序,完成初始化工作,然后转跳到预定的一个地址来执行裸机程序或者UBOOT程序,在UBOOT中按照设置好的内核启动参数来启动内核,告诉内核怎么样加载,怎么样初始化,和第一个程序,根文件系统的位置.然后内核启动好了以后,挂载根文件系统,执行第一个程序i ...
分类:
系统相关 时间:
2016-05-24 22:21:11
阅读次数:
258
把链接器脚本led.lds、源文件led.S以及Makefile给出 1、arm-linux-gcc -g -c led.S -o led.o 编译不链接且包含调试信息 2、arm-linux-ld -Tled.lds -o led.elf led.o 使用链接器脚本led.lds来进行链接 3、a ...
分类:
其他好文 时间:
2016-05-21 06:36:26
阅读次数:
196
uboot和内核到底是什么?uboot实质就是一个复杂的裸机程序;uboot可以被配置也可以做移植;操作系统内核本身就是一个裸机程序,和我们学的uboot和其他裸机程序没有本质的区别;区别就是我们操作系统运行起来后可以分为应用层和内核层,分层后,两层的权限不同,内存访问和设备操作的管理上更加精细(内 ...
分类:
系统相关 时间:
2016-05-15 19:32:13
阅读次数:
630
一、概述 MDK开发ARM裸机程序时,在调试阶段通常是先让程序在SDRAM中执行,以加快调试速度,也避免频繁烧写Nor Flash,因此需要知道如何指定程序在哪个位置执行。本文以realarm 2410开发板为例,进行描述。该开发板使用S3C2410A做为CPU,有2MB的 Nor Flash,以及64MB的SDRAM,4KB的SRAM。程序可直接在Nor Flash中调试和运行,如果代码小于4K...
分类:
其他好文 时间:
2016-05-12 20:18:35
阅读次数:
702
在正式开始学习裸机程序的编写之前,我们还需要安装一下交叉编译工具。何为交叉编译工具?其实就是在x86的ubuntu主机上编译程序,并且可以运行在arm环境的编译工具。而gcc是本地编译工具,这个在我们本篇刚开始就已经安装了。现在我们需要安装交叉编译工具arm-linux-gcc。我现在是直接使用厂家 ...
分类:
系统相关 时间:
2016-04-04 19:42:37
阅读次数:
182
Mini6410上最简单的LED点灯裸机程序 : 实验环境: 根据友善教程,要用ADS,据说现在都不用这个了,但是为了打开友善给的mcp工程,就下了一个,Win7下弄上兼容模式和管理员权限,再下一个SecureCRT代替超级终端。 一定要,把AXD也设置上。 secureCRT的
分类:
其他好文 时间:
2016-03-13 00:36:37
阅读次数:
357
好了,言归正传,裸机程序没有操作系统的支持,想要用c语言,就只能先使用汇编语言手动配置c语言需要的环境,听起来很高大上,其实需要做的很简单:指定堆栈指针的值就好。 那么完成这个简单的事情之前,先要明白c语言的栈的以下几个概念:1. 空栈和满栈:这两个概念不是说的栈是空的还是满的,空栈是指栈指针指向的...
分类:
编程语言 时间:
2016-03-08 23:36:00
阅读次数:
215
2.交叉工具链 一、交叉工具链: 交叉工具链,其实他有两个含义,一个就是交叉工具,所谓的交叉工具就是运行的环境和编译的环境不是在一体的。就像我们现在,编译裸机程序是在pc机上面执行的。可我们运行程序是在开发板。链,就是很多的意思,就是一个工具的集合。在我们前面配置arm-linux-gcc的工具中。...
分类:
其他好文 时间:
2016-02-14 10:23:58
阅读次数:
193
1.裸机开发环境的体验(Redhat 6.4 + vbox) 一、裸机开发的一般流程 注意:这是假定你已经搭建好了裸机开发环境 我们裸机的一般开发流程:图1-1: 图1-1 裸机开发流程 由于在这篇文章里是体验裸机程序,所以我们跳过了1、2步骤。直接从第三步开始: 二、交叉工具链的安装: 在这里,我...
分类:
其他好文 时间:
2016-02-14 10:23:11
阅读次数:
209
5.Eclipse集成开发环境 Eclipse集成开发环境不仅可以编译裸机工程,还可以调试整个裸机工程,这样当程序异常的时候,可以更加有效的进行修改。接下来就是搭建整个eclipse集成环境:这个调试环境的框架如下图1-1: 图1-1 从上面的框架图看到,要实现eclipse在线调试裸机程序,需要安...
分类:
系统相关 时间:
2016-02-14 10:19:38
阅读次数:
336