登录
注册
一键加入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
热门版块:
ROM发布区
NanoPi 玩家交流区
开发板实战手册及教程
我的论坛我的贴
Android技术交流区
NanoPi 交流与讨论
默认风格
用户中心首页
编辑个人资料
查看个人资料
好友列表
用户权限查看
积分管理
积分转换
特殊组购买
收藏夹
我的主题
基本统计信息
到访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
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问