Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
关于Linux下通过Jlink烧写stm32板子
发布于 2011-02-11 21:39:51 浏览:12462
订阅该版
大致流程走了一遍,详细参见:[http://www.mcuos.com/thread-5885-1-1.html](http://www.mcuos.com/thread-5885-1-1.html) 但有个问题,就是最后通过"loadbin xx.bin addr"指定地址的时候有些疑问,对于Linux kernel, 其烧写的地址都是uboot里面定义的,而RTT本身就一个文件,请问该如果指定正确的烧写地址呢? 给板子上电启动的时候是从什么位置加载.bin启动执行的(或者说是如何找到.bin文件的)? 在RTT中有定义吗?
查看更多
15
个回答
默认排序
按发布时间排序
bernard
2011-02-11
这家伙很懒,什么也没写!
烧写地址见编译时的链接脚本,里面什么都有了 或者用readelf看看elf文件
aozima
2011-02-12
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
对于内置FLASH的嵌入式MCU来说. 生成的bin文件应该load的目标地址就是FLASH的起始地址 (自己实现bootloader或在RAM中运行等特殊情况灵活变动) 可以查数据手册得知,然后根据这个地址来写链接脚本.然后再下载到芯片的这个地址.
wzc0066
2011-02-14
这家伙很懒,什么也没写!
1. Jlink启动log: ``` zwang@wzc-laptop:~/source/JLink_Linux_V422$ ./start SEGGER J-Link Commander V4.22 ('?' for help) Compiled Dec 17 2010 17:41:09 DLL version V4.22, compiled Dec 17 2010 17:41:06 Firmware: J-Link ARM V7 compiled Sep 6 2010 10:43:31 Hardware: V7.00 S/N: 11111117 Feature(s): RDI, FlashBP, FlashDL, JFlash, GDBFull VTarget = 3.293V Info: Could not measure total IR len. TDO is constant high. WARNING: CPU core not found. No devices found on JTAG chain. Trying to find device on SWD. Info: Found SWD-DP with ID 0x1BA01477 Info: TPIU fitted. Info: ETM fitted. Info: FPUnit: 6 code (BP) slots and 2 literal slots Info: Found Cortex-M3 r1p1, Little endian. Cortex-M3 identified. JTAG speed: 100 kHz J-Link> J-Link> ``` 应该是正常启动了。 2. 确定加载地址并通过loadbin加载的log: ``` J-Link>loadbin /home/zwang/work_dir/stm32/rt-thread-read-only/bsp/stm3210/rtthread.bin 0x08000000 Loading binary file... [/home/zwang/work_dir/stm32/rt-thread-read-only/bsp/stm3210/rtthread.bin] Writing bin data into target memory @ 0x08000000. J-Link> ``` 加载地址应该是0x08000000了,链接脚本stm32_rom.ld里面定义是这个地址,原来同事在keil下烧写的也是这个地址。 从log来看烧写好像没什么问题,只是有一点可疑:烧写一个33K的.bin文件都没延迟,Jlink有那么快吗? 但是烧写完毕之后重启板子执行的仍然是以前从keil下灌入的kernel(有rt_kprintf输出的),请问原因可能出在什么地方呢 ?
aozima
2011-02-14
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
没用过命令行来烧写. 不过. 隐约有个印象是 要写入FLASH,并不能直接这样loadbin 而是通过STM32的FLASH编程算法去操作STM32的寄存器来写入FLASH的. 这个loadbin是写入RAM. JLINK的LINUX软件没有j-flash可用?
bernard
2011-02-14
这家伙很懒,什么也没写!
1. JLink启动log 很明显jlink应该没找到芯片,应该要使用SWD模式连接。
wzc0066
2011-02-14
这家伙很懒,什么也没写!
>1. JLink启动log >很明显jlink应该没找到芯片,应该要使用SWD模式连接。 --- ... ... WARNING: CPU core not found. No devices found on JTAG chain. Trying to find device on SWD. Info: Found SWD-DP with ID 0x1BA01477 Info: TPIU fitted. Info: ETM fitted. Info: FPUnit: 6 code (BP) slots and 2 literal slots Info: Found Cortex-M3 r1p1, Little endian. Cortex-M3 identified. JTAG speed: 100 kHz 前面确是"CPU core not found",但后面通过SWD已经找到了。
bernard
2011-02-14
这家伙很懒,什么也没写!
唔,没具体看到后面的log。 jlink在linux下没提供类似j-flash的命令行?windows下不是采用j-link commander烧写的。
bernard
2011-02-14
这家伙很懒,什么也没写!
[http://www.segger2.com/index.php?page=Thread&threadID=546](http://www.segger2.com/index.php?page=T ... readID=546) 需要在命令行中执行 exec device = STM32F103ZE // 别人用来烧写AT91SAM7S256的方法 ``` exec device = AT91SAM7S256 // LPC2478 can also be selected. speed 12000 // since JLink.exe starts up with 5 kHz by default, which is too slow for flash programming.... // would take a long time. It is user's responsibility to select a appropriate speed h loadbin C:at91sam7s256_flash.bin, 0x00100000 r // The write to the flash is cached by the DLL and really written if absolutely necessary, e.g when a "go" or "reset" takes place g ```
wzc0066
2011-02-15
这家伙很懒,什么也没写!
多谢,这个帖子我昨天也看到了。。。 所有命令执行起来好像都没什么问题,而板子每次运行的依然是之前同事通过keil灌进进去的0.3.1内核;我在Linux下编译的0.4.x内核一直都没工作起来(或者说是根本没有load进去)。。。 内核的更改很小,就是led.c里面有点改动,以及application.c做了点修改(就是输出led1 on/off 之类的信息),其它的基本都是bsp/stm3210的源文件; 编译过程没有问题;会是因为内核改动方面的原因吗?
aozima
2011-02-15
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
把编译出来的HEX或BIN复制出来在WIN下面烧一下就知道程序是否OK了. 然后再去查为什么没烧进去.
撰写答案
登录
注册新账号
关注者
0
被浏览
12.5k
关于作者
wzc0066
这家伙很懒,什么也没写!
提问
14
回答
16
被采纳
0
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
开源共生 商业共赢 | RT-Thread 2024开发者大会议程正式发布!
2
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
3
RT-Thread EtherKit开源以太网硬件正式发布
4
如何在master上的BSP中添加配置yml文件
5
使用百度AI助手辅助编写一个rt-thread下的ONVIF设备发现功能的功能代码
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
19
个答案
2
次被采纳
张世争
9
个答案
2
次被采纳
rv666
6
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部