登录
注册
一键加入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统计
管理团队
管理统计
在线统计
会员排行
版块排行
帖子排行
个人首页
我的收藏
好友近况
友善之家
U-boot技术交流区
Eclipse+Jlink+Fedora实现mini6410单步调试u-boot
友友粉丝快线
开发板销售中心
嵌入式最新资讯
友善之臂最新动态
友善之臂官方客服中心
开发板实战手册及教程
应用方案和定制开发
NanoPi 交流与讨论
NanoPi 玩家交流区
ROM发布区
硬软DIY及开发
嵌入式交流与讨论
Android技术交流区
Linux技术交流区
U-boot技术交流区
WinCE技术交流区
Ubuntu技术交流区
裸机程序和微型OS
OpenWRT讨论区
开发板硬件讨论区
相关资料下载及使用技巧
站点服务
二手交易区
我的论坛我的贴
站务管理与公告
上一主题
下一主题
«
1
2
3
»
Pages: 1/3 Go
新 帖
主题 : Eclipse+Jlink+Fedora实现mini6410单步调试u-boot
复制链接
|
浏览器收藏
|
打印
blueleaf_y
级别: 侠客
作者资料
发送短消息
加为好友
UID:
36528
精华:
2
发帖:
43
金钱:
315 两
威望:
63 点
贡献值:
2 点
综合积分:
126 分
注册时间:
2011-01-17
最后登录:
2012-03-26
楼主
发表于: 2011-12-27 13:16
只看楼主
|
小
中
大
Eclipse+Jlink+Fedora实现mini6410单步调试u-boot
管理提醒:
本帖被 xoom 执行加亮操作(2012-01-03)
真杯具啊,上传附件已达到指定个数5个,图片没法插入了·····
Eclipse+Jlink+Fedora实现mini6410单步调试u-boot.zip
(566 K) 下载次数:705
注意
linux
下编译已经为
elf32
格式的文件
(
若
Jlink
不能识别,看板子
version
是否小于
1048
,请看使用
J-Link
在
ADS
下调试
Mini6410
裸机程序的详细步骤(开发文档和教程下
))
因有人问到2440等是否可用,就试了下
:
如果用
SD
卡或者
Nand U-boot
启动来完成初始化,Eclipse可采用如下初始命令,即去掉了初始化CPU等部分,只提供下载等命令:
# connect to the J-Link gdb server
target remote localhost:2331
#target remote 127.0.0.1:2331
# Set JTAG speed to 30 kHz
monitor speed 30
monitor endian little
# Setup GDB for faster downloads
#set remote memory-write-packet-size 1024
#set remote memory-write-packet-size 4096
set remote memory-write-packet-size 10240
set remote memory-write-packet-size fixed
monitor speed 12000
#break start_armboot
break relocate_code
load
break lowlevel_init
load完成后就可以进行jlink单步调试,但要注意修改u-boot的基地址,如原板子上得u-boot在0x57e00000(u-boot-2011.09默认在此),就要修改Makefile中的 echo "RAM_TEXT= 0X57E00000" >> ......config.tmp 为合适的值,如0x58E00000等。
一、需安装的软件:
1
、
jre-6u21-windows-i586.exe
2
、
eclipse
推荐
:
Eclipse Helios Packages (2010 - v 3.6)
à
Eclipse IDE for C/C++ Developers
Feature List:
org.eclipse.cdt
7.0.0
org.eclipse.cdt.platform
7.0.0
org.eclipse.platform
3.6.0
org.eclipse.rcp
3.6.0
已经包含了
CDT 7.0
,不需要再装
CDT-master
了!!!
或者:
Eclipse-SDK-3.6.2-win32
http://www.eclipse.org/downloads/
Cdt-master-7.0 .2.zip
http://www.eclipse.org/cdt/downloads.php
(
不需要解压,安装较久
)
4
、
Zylin
插件
http://opensource.zylin.com/zylincdt
(
在线安装
)
5
、
JLinkARM_V410i
http://www.segger.com/cms/jlink-software.html
注意:
对于
Jlink
的软件包,在
V4.10
下测试。高版本不一定支持的好。
6
、
Windows
下的交叉编译工具
(
两个工具都试过能在
windows
下正常编译
u-boot)
Sourcery CodeBench Lite Edition for ARM
选择
EABI—all versions---
》
Sourcery G++ Lite 2011.03-42
http://www.codesourcery.com/sgpp/lite/arm/portal/subscription?@template=lite
或者
yagarto-bu-2.20.1_gcc-4.5.1-c-gdb-7.1_eabi
http://www.yagarto.de/#download
二、在线查找并安装
1
安装
C/C++
插件
(
如果是
Eclipse IDE for C/C++ Developers
版本省略此步
)
启动
eclipse
,点
help->Install new software->Add .
然后在弹出的窗口中
Name
不用填写,在
Location
中填写:
http://update.eclipse.org/tools/cdt/releases/new
,然后点
OK
,软件会自动查找
CDT
插件,一路点下去即可
;
2
安装
zylincdt
调试插件
同样重复以上步骤,在
Location
中填写:
http://opensource.zylin.com/zylincdt
下载压缩包来安装
:
1
、启动
eclipse
,点
help->Install new software->Add .
然后在弹出的窗口中
—
》
Location
一栏选择压缩包
。
2
、勾选要安装的插件,点
ok
三、连接
Jlink
正确连接上
mini6410
开发板和
Jlink
后
,
打开
gdb server
如图所示
,
可以正确读出
ARM11.
状态是
waiting for connection.
1)
一定不要选
adpative
否则在调试时会出现连不上
,可选择
auto
或者
5k~12000k
之一都可以。
2)
需选为
little endian
本文就该调试环境来调试
uboot
来简单介绍一下。在
windows
下编译
uboot
可以参考
Build and Debug U-Boot in Eclipse Helios On Window XP
一文,我用的是
u-boot-2011.09
,经过修改
Makefile
和
mkconfig
中
soft link
相关部分,在
MinGW
和
Eclipse
下能顺利进行编译。本文介绍另外一种方法,也是
liandao
大侠提供的方法,只是我做了一些改动。
1
、建立工程
new—>project
à
须选择
Makefile project with Existing Code
->
选择
samba
共享的
u-boot-2011.09
目录
。
我是将
samba
目录映射驱动
Z
。
如果导入不成功,请到
linux
虚拟机检查
samba
共享设置,是否勾上
writable
。我用的
Fedora14
,附录
A
是
samba
相关设置。
2
、设置
build
相关选项。
工程选项
properties—
》
C/C++ Build
a
、
Builder Setting Tab
项
去掉
Use default build command
,填上
cmd /c remote_build.bat
b
、
Setting
一栏,勾上
elf parse
和
GNU elf parse
并修改
GNU elf parse
下
addr2line.exe
和
c++ filt.exe
为你安装到
windows
的交叉编译工具
eabi
目录路径。我装的是
Sourcery G++ Lite 2011.03-42
,所以是
arm-2011.03\bin
下。
并把
project
项中
build automatically
项取消掉,不让其自动编译。
3
、添加
make distclean
和
make mini6410_config
项
project->make target
à
create
填上
distclean
然后
ok
同样增加
mini6410_config
项
.(
如果是全新的
u-boot-2011.09
可尝试
smdk_6400)
4
、
plink
等相关设置
a
、
link.exe C:/Windows/system32
下
b
、建立一文本文件写入:
plink.exe -ssh root@192.168.0.5 -pw 111111 cd /usr/tmp/u-boot-2011.09; time make %1; date;
linux IP
密码
uboot
目录
改名为
remote_build.bat
,放到
/usr/tmp/u-boot-2011.09
目录下
因我在
u-boot
中
Makefine
加入了
linux
下的交叉编译路径
(export CROSS_COMPILE=arm-none-eabi-
)
及
root
账户启动时加入了交叉编译器的
linux
目录,所以不用再
remote_build.bat
中去执行环境变量。
5
、
Debug
项设置
run-
》
Debug
双击
Zylin embedded debug—
》选择下边的
u-boot-xx
main
一栏选择
u-boot
[upload=8]
下面设置
Debugger
选项卡,
把
GDB debugger
设置为
arm-none-eabi-gdb.exe
.
就是我们以后调试用的交叉调试器。把
GDB command file:
清空
。
[upload=9]
下面设置
Command
选项卡,在
’Initialize’ Command
添加下面的初始化
mini6410
的代码
,这个代码是
符合
Jlink gdbserver
的语法结构
的。
[upload=10]
在
Eclipse+Jlink gdbSever
调试
mini6410 uboot
一文中作者加入了
continue
,是不能进行单步调试的,切记。
代码如下
(
做了简单的注释
):
# connect to the J-Link gdb server
target remote localhost:2331
#target remote 127.0.0.1:2331
# Set JTAG speed to 30 kHz
monitor speed 30
monitor endian little
# Reset the target
monitor reset
monitor sleep 20
#
# CPU core initialization (to be done by user)
#
# Set the processor mode
monitor reg cpsr = 0xd3
#enable arm instruction set simulation
monitor AllowSimulation 1
#config MMU
#flush v3/v4 cache
monitor cp15 7, 7, 0, 0 = 0x0
#/* flush v4 TLB */
monitor cp15 8, 7, 0, 0 = 0x0
#disable MMU stuff and caches
monitor cp15 1, 0, 0, 0 =0x1002
#Peri port setup
monitor cp15 15, 2, 0, 4 = 0x70000013
#disable watchdog
#memU8/16/32 read/write byte/half word/word from the address
#monitor memU32 0x7e004000 :read word
monitor MemU32 0x7e004000 = 0x00000000
monitor sleep 100
#disable interrupt
,
对
VICINTENCLEAR
寄存器:
0
无影响
1
中断
diable
monitor MemU32 0x7120000C = 0x00000000
monitor MemU32 0x7130000C = 0x00000000
monitor MemU32 0x71200014 = 0xFFFFFFFF
monitor MemU32 0x71300014 = 0xFFFFFFFF
#
对
VectAddr
写入任何值清除当前中断
monitor MemU32 0x71200F00 = 0x00000000
monitor MemU32 0x71300F00 = 0x00000000
#set clock
【系统控制器一章中包括时钟和电源控制】
monitor MemU32 0x7e00f000 = 0x0000ffff
monitor MemU32 0x7e00f004 = 0x0000ffff
#monitor MemU32 0x7e00f00C = 0xc2150603
monitor MemU32 0x7e00f00C = 0xc2150601
monitor MemU32 0x7e00f010 = 0xc2150601
monitor MemU32 0x7e00f014 = 0x00200102
monitor MemU32 0x7e00f018 = 0x00000000
monitor MemU32 0x7e00f01C = 0x14000007
monitor MemU32 0x7e00f020 = 0x01043310
monitor MemU32 0x7e00f024 = 0x00000003
monitor MemU32 0x7e00f900 = 0x0000801e
#config sdram
monitor MemU32 0x7e00f120 = 0x00000008
monitor MemU32 0x7e001004 = 0x00000004
monitor MemU32 0x7e001010 = 0x0000040f
monitor MemU32 0x7e001014 = 0x00000006
monitor MemU32 0x7e001018 = 0x00000001
monitor MemU32 0x7e00101c = 0x00000002
monitor MemU32 0x7e001020 = 0x00000006
monitor MemU32 0x7e001024 = 0x0000000a
monitor MemU32 0x7e001028 = 0x0000000c
monitor MemU32 0x7e00102c = 0x0000018f
monitor MemU32 0x7e001030 = 0x0000000c
monitor MemU32 0x7e001034 = 0x00000002
monitor MemU32 0x7e001038 = 0x00000002
monitor MemU32 0x7e00103c = 0x00000002
monitor MemU32 0x7e001040 = 0x00000002
monitor MemU32 0x7e001044 = 0x00000013
monitor MemU32 0x7e001048 = 0x00000013
monitor MemU32 0x7e00100C = 0x00010012
monitor MemU32 0x7e00104C = 0x00000b45
monitor MemU32 0x7e001200 = 0x000150f8
monitor MemU32 0x7e001304 = 0x00000000
monitor MemU32 0x7e001008 = 0x000c0000
monitor MemU32 0x7e001008 = 0x00000000
monitor MemU32 0x7e001008 = 0x00040000
monitor MemU32 0x7e001008 = 0x00040000
monitor MemU32 0x7e001008 = 0x000a0000
monitor MemU32 0x7e001008 = 0x00080032
monitor MemU32 0x7e001004 = 0x00000000
# Setup GDB for faster downloads
#set remote memory-write-packet-size 1024
#set remote memory-write-packet-size 4096
set remote memory-write-packet-size 10240
set remote memory-write-packet-size fixed
monitor speed 12000
#break start_armboot
break relocate_code
load
break lowlevel_init
#
不能使用
continue
,否则不能进行单步调试
(
即会程序自动
run)
#continue
source
一栏移除
default
项。
点击
Debug
按钮,
uboot download
完成以后,就可以像其他的调试器一样。
如图下载进行中:
[upload=11]
下载完成,设置
u-boot
代码所在目录
Locate File
设置
start.S
的目录
source lookup path
设置
project—
》
u-boot-2011.09
的目录
然后就可单步
step in/step out
调试了。
[upload=12]
附录
A Fedora14 samba
设置及
Fedora
运行于命令行模式
1、
修改
fedora14 /etc/ininttab
26
行
改为
id :3:initdefault:
再次启动就会停留在命令行登陆模式,如果要进入
X-windows
,登陆后执行
startx
即可。
2、
samba
终端:
#yum search samba
#yum install samba.i686
samba GUI
配置工具
#yum install system-config-samba.noarch
添加
samba
共享目录,需勾上
writable
[upload=13]
添加
samba
用户
[upload=14]
共享属性设置:
share
模式,不需输入密码
[upload=15]
[ 此帖被blueleaf_y在2012-01-10 11:59重新编辑 ]
顶端
回复
引用
分享
kasim
*無鈳取玳
级别: 论坛版主
作者资料
发送短消息
加为好友
QQ联系
UID:
27
精华:
12
发帖:
5398
金钱:
40120 两
威望:
17929 点
贡献值:
71 点
综合积分:
11036 分
注册时间:
2008-01-16
最后登录:
2014-11-22
1楼
发表于: 2011-12-27 13:29
只看该作者
|
小
中
大
很好,谢谢分享。看来应该找qq2440修改附件上传个数的限制了:)
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
顶端
回复
引用
分享
jecan
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
31959
精华:
0
发帖:
31
金钱:
160 两
威望:
32 点
贡献值:
0 点
综合积分:
62 分
注册时间:
2010-11-08
最后登录:
2014-03-27
2楼
发表于: 2011-12-27 13:33
只看该作者
|
小
中
大
好好哈哈
顶端
回复
引用
分享
hens07
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
51998
精华:
0
发帖:
39
金钱:
195 两
威望:
39 点
贡献值:
0 点
综合积分:
78 分
注册时间:
2011-07-10
最后登录:
2014-12-04
3楼
发表于: 2011-12-27 14:26
只看该作者
|
小
中
大
好东西
顶端
回复
引用
分享
wuweidong
畅游在知识的海洋...
级别: 论坛版主
作者资料
发送短消息
加为好友
UID:
33629
精华:
4
发帖:
554
金钱:
3075 两
威望:
615 点
贡献值:
5 点
综合积分:
1188 分
注册时间:
2010-12-03
最后登录:
2015-09-22
4楼
发表于: 2011-12-27 15:28
只看该作者
|
小
中
大
不错啊,多了一种选择
好好学习,天天鲁管
顶端
回复
引用
分享
geneil
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
60570
精华:
0
发帖:
6
金钱:
30 两
威望:
6 点
贡献值:
0 点
综合积分:
12 分
注册时间:
2011-12-12
最后登录:
2012-12-11
5楼
发表于: 2012-01-04 17:04
只看该作者
|
小
中
大
很好,对理解启动代码有很大作用~谢谢lz
顶端
回复
引用
分享
blueleaf_y
级别: 侠客
作者资料
发送短消息
加为好友
UID:
36528
精华:
2
发帖:
43
金钱:
315 两
威望:
63 点
贡献值:
2 点
综合积分:
126 分
注册时间:
2011-01-17
最后登录:
2012-03-26
6楼
发表于: 2012-01-10 12:05
只看该作者
|
小
中
大
插几幅图片进去
顶端
回复
引用
分享
zhoujiaxg
级别: 侠客
作者资料
发送短消息
加为好友
UID:
27691
精华:
0
发帖:
88
金钱:
450 两
威望:
90 点
贡献值:
0 点
综合积分:
176 分
注册时间:
2010-08-30
最后登录:
2014-01-14
7楼
发表于: 2012-01-21 00:13
只看该作者
|
小
中
大
MARK Eclipse+Jlink+Fedora实现mini6410单步调试u-boot
顶端
回复
引用
分享
mk_li
我要好好学习嵌入式驱动。。。。。。
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
63285
精华:
0
发帖:
11
金钱:
60 两
威望:
12 点
贡献值:
0 点
综合积分:
22 分
注册时间:
2012-02-17
最后登录:
2014-12-23
8楼
发表于: 2012-02-17 12:59
只看该作者
|
小
中
大
虽然没有jlink,但是还是要谢谢楼主的分享,以后肯定会用到的。
顶端
回复
引用
分享
pony
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
67718
精华:
0
发帖:
40
金钱:
205 两
威望:
41 点
贡献值:
0 点
综合积分:
80 分
注册时间:
2012-04-14
最后登录:
2012-11-20
9楼
发表于: 2012-04-26 23:17
只看该作者
|
小
中
大
我滴裸机,,,,
顶端
回复
引用
分享
上一主题
下一主题
«
1
2
3
»
Pages: 1/3 Go
友善之家
U-boot技术交流区
http://121.40.142.80
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问