历史上的今天
今天是:2025年04月01日(星期二)
2020年04月01日 | STM8L151系列 (OTA) Bootloader功能的开启 和 关闭
2020-04-01 来源:eefocus
IAR软件,使用官方halt库
#define OPT_BL_ADDR_L 0x480B
#define OPT_BL_ADDR_H 0x480C
void enable_ota_action(void)
{
uint16_t optbl = 0;
FLASH_DeInit();
FLASH_Unlock(FLASH_MemType_Data);//解锁EEPROM区域(注意type是Data)
// [ROP]默认为0xAA; Read Out Protection OFF;屏蔽读保护;
optbl = ((uint16_t)FLASH_ReadByte(OPT_BL_ADDR_L) << 8) | FLASH_ReadByte(OPT_BL_ADDR_H);
if (optbl != 0x55AA)
{
printf("[OPTBL] en: 0x%Xrn", optbl);
// OPTBL: Option Byte 可选的字节
FLASH_ProgramOptionByte(OPT_BL_ADDR_L, 0x55); // [BLCHECK1]为0x55; BootLoader Check1 Enabled;
FLASH_ProgramOptionByte(OPT_BL_ADDR_H, 0xAA); // [BLCHECK2]为0xAA; BootLoader Check2 Enabled;
}
FLASH_Lock(FLASH_MemType_Data);
}
void disable_ota_action(void)
{
uint16_t optbl = 0;
FLASH_DeInit();
FLASH_Unlock(FLASH_MemType_Data);//解锁EEPROM区域(注意type是Data)
// [ROP]默认为0xAA; Read Out Protection OFF;屏蔽读保护;
// FLASH_GetReadOutProtectionStatus(xx); FLASH_ReadOptionByte();
// https://github.com/Spider84/PLX_Extends/blob/master/main.c
optbl = ((uint16_t)FLASH_ReadByte(OPT_BL_ADDR_L) << 8) | FLASH_ReadByte(OPT_BL_ADDR_H);
if (optbl != 0x0000)
{
printf("[OPTBL] dis: 0x%Xrn", optbl);
// OPTBL: Option Byte 可选的字节
FLASH_ProgramOptionByte(OPT_BL_ADDR_L, 0x00); // [BLCHECK1]为0x00; BootLoader Check1 Disabled;
FLASH_ProgramOptionByte(OPT_BL_ADDR_H, 0x00); // [BLCHECK2]为0x00; BootLoader Check2 Disabled;
}
FLASH_Lock(FLASH_MemType_Data);
}
史海拾趣
|
摩托罗拉(中国)电子有限公司副总裁及总经理林信孚: 车载通信系统在中国发展前景巨大 摩托罗拉不只在无线通信、宽带通信领域具备相当经验和相当 实力,业已在汽车电子市场浸润了七十多年,在汽车通信领域也奠定 了其领先地位。摩 ...… 查看全部问答> |
|
我有一个程序是用汇编写的(网上下载的),本人不会汇编,那位老师汇编好,帮忙看看,能不能翻译一下: ;************************************* ;STC89C51RC单片机,6M晶振 ;CH375A,D0--D7接S51,P2.0--P2.7 ;P0.7为红外输入 ;P0.6为无线电信 ...… 查看全部问答> |
|
我想用单片机(89c51)用下面的代码向串口发送数据,可不知道为什么不行。 不仅不能发送字符串,就连16进制的数都不能发。 main() { TMOD=0x20; TH1=0xe8; &nb ...… 查看全部问答> |
|
上海 外企诚聘嵌入式开发工程师/嵌入式开发主管,薪资是OPEN的,可以达到15K左右 1,主管(高级嵌入式开发软件工程师) 本科5年以上(不要求英文) 职位描述: 1、负责软件产品的系统分析和架构设计 2、指导工程师进行模块设计,解决工作 ...… 查看全部问答> |
|
本人欲采用外部的AD模块进行模数转换,ADC芯片是TI的ADS931——我的办法是数据口与430的IO直接连,这样连接是否有问题?第二个问题是ADS931的CLK引脚和430该如何连接?谢谢 [ 本帖最后由 周星星在哈工程 于 2011-8-23 14:58 编辑 ]… 查看全部问答> |
|
msp430单片机18B20测温程序 #include \"msp430x22x4.h\" typedef unsigned char uchar; typedef unsigned int uint; #define DQ1 P2OUT |= BIT4 #define DQ0 P2OUT &= ~BIT4 #define DQ_in P2DIR &= ~BIT4 #define DQ_o ...… 查看全部问答> |




