关于SILICON LABS C8051F500单片机自写BootLoader引导程序跳转到用户程序区的问题
您好,我在用f500单片机写一个BootLoader引导程序,程序现在能够做到接收上位机发来的数据并且写入flash中,写入flash是有校验的,写入后读出数据也都正常。但是定义了一个函数指针却怎么也跳不到用户程序区去,表面上的现象是一直在BootLoader程序里。我经过仿真,发现程序在运行到跳转指令时,能跳到用户代码的首地址,但是马上有跳走了。 我的BootLoader程序是通过下载器把hex文件下载到低地址的。然后在BootLoader程序里接收上位机发来的bin文件数据写入flash,每次写入7个字节数据,然后向上位机发送写入完成,之后上位机再发来7个字节,重复刚才直到全部写入成功。执行指针函数的跳转指令。搜索资料后发现需要偏移中断向量表,这个怎么操作的?除了这个还有没有别的必须需要改动的?期待您的解答。希望您不吝赐教,非常感谢!!!
-
创建于2018-08-06
3个回答
-
- Mil_世强 (1)
串口bootloader说明:https://www.sekorm.com/doc/69616.html
LIN接口bootloader说明:https://www.sekorm.com/doc/69621.html
CAN接口bootloader说明:https://www.sekorm.com/doc/42479.html
silicon LAB网站可以下载对应的bootloader代码,以便提供参考:
https://www.silabs.com/support/resources.p-microcontrollers_8-bit-mcus_c8051f50x?query=bootloader
说明的4.3节有介绍程序运行起始位置不为0时的修改。通过“CSEG AT 0600h”定义。
- 创建于2018-08-06
-
用户52604788:我现在的bootloader程序是放在低地址的,也就是从0开始运行。我在STARTUP.A51中把中断向量表定位到了app程序数据的第一个字节所在的地址,keil中也设置了,bootloader中用查询的方式收发数据,最后处理完利用指针函数就能跳到app数据首地址运行了吧?如果不能还需要做什么?非常感谢,困扰我老长时间了,希望您能耐心给我说下,不胜感激!!!
2018-08-06
-
- 用户42319373 Lv1 (1)
- 兄弟,你这个问题搞定了没?我现在也遇到你这个一模一样的问题。
- 创建于2020-03-31
-
- 用户_9179 (0)
- 请参考这里的步骤:
- 创建于2018-08-08
- |
- +1 赞 0
- 收藏
平台合作
相关推荐
我写的C8051F500单片机的IAP程序,能通过自己写的上位机下载进去用户程序并且可以运行,但是就是进不去中断是怎么回事,bootloader放在低地址。
如果是发生中断后程序跑飞,则可能是中断向量设置问题请参考AN533 关于C8051FXXX微控制器的模块化引导程序新框架 应用笔记 https://www.sekorm.com/doc/42354.html page14 关于如何偏移中断向量的步骤
关于芯科C8051F500 IAP下载的问题?我想知道F500单片机IAP程序如果在IAP过程中把用户程序的bin文件往flash中写的时候写错了一个字节,用户程序还能运行起来吗?
Bin文件一个字节出错,会影响运行结果,甚至无法运行。所以用IAP升级时,需要对写入数据进行校验,确保程序万无一失。
Silicon Labs C8051F500 MCU通过MCU下载器(黄色的)在线下载程序后,50%第二次再次下载就会烧写不进去程序;快速通断电有2%~3%的单片机启动不起来;这都是为什么?
如果出现第二次不能下载的问题,可以通过IDE或者Flash Programming Utility软件对MCU进行擦出,然后再下载。因为MCU在上电复位都有一个时间,反复通、断电,使MCU没有正常复位,就会出现此问题,请参考Silicon Labs C8051F500 MCU参考手册上的“复位源”那一章,有详细介绍
请问C8051F500这款单片机是否要停产了?
您好,目前只有C8051F500-AQ和C8051F500TBC停产。
c8051f500-iq单片机总是没现货,有可以代替的推荐吗?
如果从pin-pin替换角度看,且资源接近的,推荐用C8051F502。
SILICON LABS 8-bit Microcontroller选型表
SILICON LABS 8位MCU选型,MCU Core 8051,频率20MHz~100MHz,Flash存储2kB~120kB,RAM存储0.25kB~8kB。
产品型号
|
品类
|
系列
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Dig I/O Pins
|
ADC 1
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
DAC
|
Comparators
|
UART
|
SPI
|
I2C
|
HS I2C Slave
|
EMIF
|
CAN
|
LIN
|
VREF
|
Debug Interface
|
C8051F392-A-GM
|
8位MCU
|
C8051F39x Small Form Factor
|
50
|
16
|
1
|
1.8
|
3.6
|
QFN20
|
4x4
|
±2
|
17
|
10-bit, 16-ch., 500 ksps
|
Temp Sensor
|
6
|
3
|
10-bit, 2-ch.
|
1
|
1
|
1
|
2
|
0
|
0
|
0
|
0
|
VREF
|
C2
|
Silicon Labs C8051F仿真器单片机烧录适配器U-EC6 读写引脚定义
下载线接口与C8051F仿真器的接口只需要C2D,C2CK,GND就可以了。软件上建议使用MCUProductionProgrammer这个软件,这个软件是Silicon Labs提供的批量下载软件。
SILICON LABS C8051F31x Small Form Factor Microcontrollers选型表
SILICON LABS 8位MCU选型,基于25MHz Frequency,8~16kB Flash,1.25kB RAM等参数进行选型
产品型号
|
品类
|
MCU Core
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
5 Volt Tolerant
|
ADC 1
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
Comparators
|
UART
|
SPI
|
I2C
|
HS I2C Slave
|
I2S
|
EMIF
|
CAN
|
LIN
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
VREF
|
Debug Interface
|
C8051F310
|
Microcontroller
|
8051
|
25
|
16
|
1.25
|
29
|
5 Volt Tolerant
|
10-bit, 21-ch., 200 ksps
|
Temp Sensor
|
4
|
5
|
2
|
1
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
2.7
|
3.6
|
QFP32
|
7x7
|
±2
|
VREF
|
C2
|
单片机EFM32HG309的SW调试接口是多功能复用引脚,默认是SWDIO和SWCLK做调试接口使用,配置成普通IO口时需要注意什么?
EFM32系列单片机的SW调试接口可以配置寄存器GPIO_ROUTE的SWDIOPEN和SWCLKPEN为0,则SW调试接口就配置成普通IO口。需要注意的是:芯片复位后,Debug功能默认使能,所以需要在程序执行3秒钟之后,才可以将SWDIO和SWCLK配置成IO口。这样调试器才有足够的时间使设备停止运行,并重新烧写程序。
使用J-link调试工具调试EFM8系列8bit单片机时,Jlink和EFM8单片机之间需要连接哪些接口线?
在使用JLink调试工具调试EFM8系列单片机时,使用到的调试接口是C2接口,正确的连线如下:1、JLink的pin1引脚VTARGET连接到目标板的VDD;2、JLink的pin2引脚C2D连接到目标板的C2D引脚;3、JLink的pin4引脚C2CK连接到目标板的C2CK;4、JLink的GND引脚连接到目标板的GND;5、目标板在调试的时候,VDD引脚需要上电。
SILICON LABS C8051F50x-59x Automotive & Industrial MCUs选型表
SILICON LABS 8位MCU选型,基于25~50MHz Frequency,2~128kB Flash,0.25~8kB RAM等参数进行选型
产品型号
|
品类
|
MCU Core
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
5 Volt Tolerant
|
ADC 1
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
Comparators
|
UART
|
SPI
|
I2C
|
HS I2C Slave
|
I2S
|
EMIF
|
CAN
|
LIN
|
AEC-Q100
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
VREF
|
Debug Interface
|
Temperature Range (ºC)
|
C8051F500-AM
|
MCU
|
8051
|
50
|
64
|
4.25
|
40
|
5 Volt Tolerant
|
12-bit, 32-ch., 200 ksps
|
Temp Sensor
|
4
|
6
|
2
|
1
|
1
|
1
|
0
|
0
|
1
|
1
|
1
|
AEC-Q100
|
1.8
|
5.25
|
QFN48
|
7x7
|
±0.5
|
VREF
|
C2
|
-40 to 125
|
Silicon Labs 单片机程序烧写接口探讨
本文总体介绍了Silicon Labs 产品编程烧录选择,对于一个空白器件最常用的编程方法主要有两种,系统编程和预编程,对于这两种方法的选择,主要考虑两方面,一方面看需编程的器件数量,另一方面考虑需编程的器件上是否预留调试引脚(JTAG或C2),一旦器件被编程一次,器件即可通过UART或其他接口升级固件。
Silicon Labs 8位单片机EFM8LB使用最新的“efm8_load_smbus.exe” GUI软件通过SMBUS下载更新固件时,只能下载.efm8格式 的固件吗?
“efm8_load_smbus.exe” GUI软件配合SMBUS接口下载更新Silicon Labs 8位单片机EFM8LB固件时目前只支持.efm8格式文件下载,需要通过 “hex2boot.exe”将.hex文件转成.efm8格式再下载。
SILICON LABS C8051F80x-3x Capacitive Touch Sense MCUs选型表
SILICON LABS 8位MCU选型,基于25MHz Frequency,4~16kB Flash,0.25~0.5kB RAM等参数进行选型
产品型号
|
品类
|
MCU Core
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
5 Volt Tolerant
|
ADC 1
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
Comparators
|
UART
|
SPI
|
I2C
|
HS I2C Slave
|
I2S
|
EMIF
|
CAN
|
LIN
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
VREF
|
Debug Interface
|
C8051F800-GM
|
MCU
|
8051
|
25
|
16
|
0.5
|
17
|
5 Volt Tolerant
|
10-bit, 16-ch., 500 ksps
|
Temp Sensor
|
3
|
3
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
1.8
|
3.6
|
QFN20
|
4x4
|
±2
|
VREF
|
C2
|
EFM8系列8bit单片机,仿真调试和代码下载接口是什么?
EFM8系列8bit单片机仿真调试和代码下载的接口是C2接口,这个和其他C8051F系列单片机是一样的。仿真调试需要连接至少4条线:VDD、GND、C2D、C2CK。 另外,EFM8出厂预置了一个UART bootloader,可以使用UART来下载代码,如果不需要使用UART bootloader功能,这部分代码也可擦除的。
电子商城
现货市场
服务

使用FloTHERM和Smart CFD软件,提供前期热仿真模拟、结构设计调整建议、中期样品测试和后期生产供应的一站式服务,热仿真技术团队专业指导。
实验室地址: 深圳 提交需求>

提供稳态、瞬态、热传导、对流散热、热辐射、热接触、和液冷等热仿真分析,通过FloTHERM软件帮助工程师在产品设计初期创建虚拟模型,对多种系统设计方案进行评估,识别潜在散热风险。
实验室地址: 深圳 提交需求>