历史上的今天
返回首页

历史上的今天

今天是: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);

}

推荐阅读

史海拾趣

BELLING LEE公司的发展小趣事

在电子行业的初期,BELLING LEE公司以其对新技术的敏锐洞察力和强大的研发能力脱颖而出。公司投入大量资源研发出了一款具有革命性的高效能电子芯片,这一创新产品不仅提高了电子设备的性能,还大大降低了能耗。凭借这一技术突破,BELLING LEE公司迅速在电子市场上获得了认可,并逐渐建立起自己的市场地位。

DRI Relays Inc公司的发展小趣事

品质是企业的生命线。为了提升产品质量和客户满意度,DRI Relays Inc公司不断加强品质管理。公司建立了严格的质量检测体系,对原材料、生产过程和成品进行全面检测。同时,公司还注重员工素质的提升,定期开展培训和技能竞赛等活动,提高员工的技能水平和质量意识。这些措施有效地保证了公司产品的稳定性和可靠性,赢得了客户的信任和好评。

Eutech公司的发展小趣事

在全球化的浪潮下,EUtech公司积极寻求国际合作。他们与德国的氢探新能源公司建立了长期稳定的合作关系,共同研发燃料电池系统控制技术。通过共享资源、互补优势,双方不仅提高了产品的竞争力,还推动了整个行业的技术进步。

Advanced Thermal Solutions公司的发展小趣事

ATS始终坚持以创新为驱动力,不断提升研发创新能力。公司设立了专门的研发团队,负责新技术和新产品的研发工作。通过与高校和研究机构的合作,ATS不断引入前沿的科技成果和人才资源,为公司的创新发展提供了有力支持。此外,ATS还建立了完善的研发流程和质量控制体系,确保每一款产品都能达到最高的性能和质量标准。

Hei Inc Optoelectronic Division公司的发展小趣事
定期对控制电路进行检查和维护,及时发现并处理潜在问题,以确保设备的长期稳定运行。
Adam Tech公司的发展小趣事

随着全球环保意识的提高,Adam Tech也积极响应绿色制造的号召。公司在生产过程中采用环保材料和工艺,减少对环境的影响。同时,公司还加大了对绿色产品的研发力度,推出了一系列符合环保标准的产品。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实的基础。

这五个故事只是Adam Tech在电子行业发展过程中的一部分缩影。正是凭借着对技术的不断追求、对品质的严格把控以及对市场的敏锐洞察,Adam Tech得以在激烈的竞争中脱颖而出,成为电子连接器行业的佼佼者。

问答坊 | AI 解惑

汽车电子上下游寻求联动2

摩托罗拉(中国)电子有限公司副总裁及总经理林信孚:    车载通信系统在中国发展前景巨大   摩托罗拉不只在无线通信、宽带通信领域具备相当经验和相当 实力,业已在汽车电子市场浸润了七十多年,在汽车通信领域也奠定 了其领先地位。摩 ...…

查看全部问答>

关于汇编语言转换为C语言

我有一个程序是用汇编写的(网上下载的),本人不会汇编,那位老师汇编好,帮忙看看,能不能翻译一下: ;************************************* ;STC89C51RC单片机,6M晶振 ;CH375A,D0--D7接S51,P2.0--P2.7 ;P0.7为红外输入 ;P0.6为无线电信 ...…

查看全部问答>

新手求助:Wince下的网络编程

要开发一个类似C/S模式的网络软件 我刚开始接触 什么都不了解 不知哪位达人能发个简单的例程给我看看?? …

查看全部问答>

请教

我用EVC 4编译了一个程序,如何从PC机上传送到硬件设备上,除了生成的EXE文件,还用到哪个DLL文件,请指点. 我的平台是用了WINCE 4.1模拟器,如果用VS2003开发的话除了EXE文件还需要哪个DLL文件,谢谢!…

查看全部问答>

关于单片机向串口发送数据的问题

我想用单片机(89c51)用下面的代码向串口发送数据,可不知道为什么不行。 不仅不能发送字符串,就连16进制的数都不能发。 main() {         TMOD=0x20;         TH1=0xe8;       &nb ...…

查看全部问答>

诚聘嵌入式开发人员,急急。。。

上海 外企诚聘嵌入式开发工程师/嵌入式开发主管,薪资是OPEN的,可以达到15K左右 1,主管(高级嵌入式开发软件工程师)   本科5年以上(不要求英文) 职位描述: 1、负责软件产品的系统分析和架构设计 2、指导工程师进行模块设计,解决工作 ...…

查看全部问答>

wince数据库,附代码,请教

{                 DWORD err = GetLastError();                 if…

查看全部问答>

MSP430F169如何与ADS931(一款AD芯片)连接

本人欲采用外部的AD模块进行模数转换,ADC芯片是TI的ADS931——我的办法是数据口与430的IO直接连,这样连接是否有问题?第二个问题是ADS931的CLK引脚和430该如何连接?谢谢 [ 本帖最后由 周星星在哈工程 于 2011-8-23 14:58 编辑 ]…

查看全部问答>

msp430单片机18B20测温程序

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 ...…

查看全部问答>