登录
注册
一键加入QQ群
友善之臂官方网站
首 页
联系我们
淘宝店铺
维基教程
资料下载
搜索帖子!
NanoPC-T2
Core4418
NanoPC-T3 Plus
Core6818
NanoPi-M4B
NanoPC-T4
NanoPC-T6
NanoPi-NEO
NanoPi-NEO Core
NanoPi-NEO Air
NanoPi-M1 Plus
NanoPi-Duo2
NanoPi-NEO3
核心板:
Smart210
Tiny210
Smart4418
Smart6818
SOM-RK3399V2
CM3588(新品)
路由器:
R1
R1S
R2S
R2S Plus
R2C Plus
R4S
R5S
R5C
R6C
R6S
热门版块:
Linux技术交流区
友善之臂最新动态
开发板实战手册及教程
站点服务
站务管理与公告
裸机程序和微型OS
默认风格
用户中心首页
编辑个人资料
查看个人资料
好友列表
用户权限查看
积分管理
积分转换
特殊组购买
收藏夹
我的主题
基本统计信息
到访IP统计
管理团队
管理统计
在线统计
会员排行
版块排行
帖子排行
个人首页
我的收藏
好友近况
友善之家
裸机程序和微型OS
keil下的两个加载域的mmu程序
友友粉丝快线
开发板销售中心
嵌入式最新资讯
友善之臂最新动态
友善之臂官方客服中心
开发板实战手册及教程
应用方案和定制开发
NanoPi 交流与讨论
NanoPi 玩家交流区
ROM发布区
硬软DIY及开发
嵌入式交流与讨论
Android技术交流区
Linux技术交流区
U-boot技术交流区
WinCE技术交流区
Ubuntu技术交流区
裸机程序和微型OS
OpenWRT讨论区
开发板硬件讨论区
相关资料下载及使用技巧
站点服务
二手交易区
我的论坛我的贴
站务管理与公告
上一主题
下一主题
新 帖
主题 : keil下的两个加载域的mmu程序
复制链接
|
浏览器收藏
|
打印
969813073
自己动手,丰衣足食
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
105407
精华:
0
发帖:
24
金钱:
125 两
威望:
25 点
贡献值:
0 点
综合积分:
48 分
注册时间:
2014-06-23
最后登录:
2016-12-13
楼主
发表于: 2014-07-22 10:09
只看楼主
|
小
中
大
keil下的两个加载域的mmu程序
这是第一次在这上面发帖,不知发的还不好。
我这个程序是基于
MMU
的例程,而这里里面的程序代码是根据,韦东山哪个本书的
MMU
章节更改的成的。
我们第一步步,和以前是一样的。正常的建立文件。
如图所示:
下来
以上步骤完成后:
下来我们建立三个文件,分别是
head.s init.c led.c
程序代码如下附件(即就是我们
MMU
代码中的程序)
创建完成之后,将所有代码添加到我们的工程中,如图所示:
我们程序已经加载到我们的工程里面了。下来我们就是,开始配置我们的工程,我们配置他的目的就是,为了让我们的程序的加载域可以存在两个甚至多个,为神魔那?
我们在韦东山的书上看到他的链接文件如下:
我们看到,
first
的运行地址和加载地址都是
0x00000000
(
head.o
,
init.o
就在这块),但是第二个的运行地址是
0xB0004000
,加载地址是
2048
(
led.o
就在这块)。你可能要问这里的地址为神魔是
0xB0004000
和
2048
,具体的请参考《嵌入式
linux
应用开发完全手册》的第七章,书上有详细解释。
那么好了,我们的程序当然要达到的同样的目的,那么我们肯定得写出我们的分散加载文件,那么我们在这里建一个分散加载文件,如下:
//
这个分散加载文件对应于两个加载域
LR_ROM1 0x00000000 0x00200000 { ; load region size_region
NANDFLASH 0x00000000 0x00200000 { ; load address = execution address
*.o (RESET, +First)
.ANY (+RO)
}
}
LR_ROM2 2048 2048 {
SDRAM 0xb0004000 {
led.o (*)
}
}
上面的这个分散加载文件,我就不说了,我们利用这个的话,可以得到如下图
那么具体的你也可以参照,,韦东山的书目进行查找,书中有详细的解释。
好了,下来我吗,我们继续,配置我们的工程,我们这里,建立了这个分散加载文件,那么我们就把他加载进去吧,如图所示:
我们配置文件,还有一个地方需要配置,那就是我们要生成,
.bin
文件。那么我们肯定,必须得配置
user
选项。在配置之前,我在这里,先说几点内容,帮助大家理解一下
1.
既然我们有两个加载域,那么我们会生成两个二进制文件。之后我的下面,会给出例子,现在记住有这麽回事。
2.
那么好了既然有两个二进制文件,那么我们怎么让他合在一起,在我们下载程序的时候只需要下载一个
bin
文件就
ok
了,当然你也可以,分两步下,分两步我没搞过。那么
keil
的
formelf
提供了这项方式。那么我们直接利用就好了。
类似于想下面,那么我们这里还有不会的,可以查官方手册
.
fromelf.exe --bin --bincombined --bincombined_padding=1,0xFF -o test.bin test.axf
好了我们接着配置:
好了这样子就
ok
了,其他的配置都是默认就行,那么我们编译一下。
我们可以看到,已经生成
.bin
文件,我们可以在,文件目录下查看一下,是否存在。
注意刚才我们说了要是不进行合并的话,他会生成两个二进制文件。那我我们把刚才生成的二进制文件,先给删掉,不然会出错,那么我们,下载,我们就把如下配置文件改一下,就
ok
了
;
这样的话编译,完成你可以看到,你的文件夹里出现了一个叫
test.bin
的文件夹,我们点进去看到,有两个文件,如下所示
那么,这个就应了我们的说的话了。
到了这一步我们的工程算是建完了,可能其中有一些,错误,还请大神指出。
顶端
回复
引用
分享
969813073
自己动手,丰衣足食
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
105407
精华:
0
发帖:
24
金钱:
125 两
威望:
25 点
贡献值:
0 点
综合积分:
48 分
注册时间:
2014-06-23
最后登录:
2016-12-13
1楼
发表于: 2014-07-22 10:20
只看该作者
|
小
中
大
我想传个,文件就什么,格式不对,第一次在这上面发帖,真心不爽,估计是我不会,算了有人想要的话,加我qq吧!969813073
顶端
回复
引用
分享
上一主题
下一主题
友善之家
裸机程序和微型OS
http://www.aiothome.net
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问