首页 > 其他分享 >CH32X035的IAP升级注意事项

CH32X035的IAP升级注意事项

时间:2023-09-06 17:55:16浏览次数:45  
标签:编程 中断 APP FLASH 注意事项 CH32X035 跳转 256 IAP

        我们的例程中选用的是USB与串口的升级方式,用户可以定义自己的接收APP数据的通信方式,需要注意的是,在跳转到APP前,需要先确定关闭了IAP程序中用到的所有中断,防止在APP中开启外设的时候进入中断,而APP中可能并没有编写中断服务函数而导致程序卡在启动文件中弱定义的中断函数中,从而导致APP无法正常运行。

          Flash编程,接受的数据在RecData_Deal(void),函数中处理。首先是解锁Flash,为了防止编程过程中被其他中断打断,可以加上关闭全局中断,变成完成之再开启。

X035每页Flash为256字节,仅快速编程:此方式采用页操作方式(推荐)。经过特定序列解锁后,执行单次 256 字节的编程及
256 字节擦除、1K 字节擦除、整片擦除。可以参考EVT例程中的flash编程代码。

printf("16K Erase Suc\r\n");
for (vu8 j = 0; j < 16*4; j++) {
FLASH_Unlock_Fast();
FLASH_ErasePage_Fast(0x08002000+j*256 );
FLASH_BufReset();
for(i=0; i<64; i++){
FLASH_BufLoad(0x08002000+4*i+256*j, buf[i]);
}

FLASH_ProgramPage_Fast(0x08002000+j*256);
}
// printf("256Byte Page Program Suc\r\n");
printf("16k Page Program Suc\r\n");
FLASH_Lock_Fast();
FLASH_Lock();

 

X035flash快速编程不同之处是,其先将数据加载到缓冲区内,然后调用快速编程函数。二者必须结合使用,每一页都要调用一次,地址也要对应。

        确定APP在ld地址没有偏移的情况下调试成功,再进行偏移编译bin文件,IAP升级或者与IAP合并之后用烧录软件一起下载。跳转步骤必须要机器模式下进行。中断函数下是处于机器模式的,例程中flash编程校验之后使能一个软件中断,在中断中跳转,如用其他中断函数跳转须在跳转前清除中断标志位,否则会异常。

void SW_Handler(void) {
__asm("li a6, 0x5000");
__asm("jr a6");

while(1);
}

 

void TIM1_UP_IRQHandler(void){

//先清除中断标志位

TIM_ClearITPendingBit(TIM1, TIM_IT_Update);

if(TIM_GetITStatus(TIM1, TIM_IT_Update)

{

if(Jump_judgment_value){

__asm("li a6, 0x5000");
__asm("jr a6");

while(1);

}

}

}

  

标签:编程,中断,APP,FLASH,注意事项,CH32X035,跳转,256,IAP
From: https://www.cnblogs.com/wchmcu/p/17683003.html

相关文章

  • 编写软件检测报告有哪些注意事项?软件检测报告获取
    软件检测报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。一、编写软件检测报告的注意事项1、报告的结构要合理和清晰。应该按照一定的逻辑顺序,将软件的测试目标、测试环境、测试方法......
  • 编写涉及多个数据库的 MySQL 存储过程注意事项
    在编写涉及多个数据库的MySQL存储过程时,有一些注意事项需要考虑。以下是一些重要的注意事项:数据库权限:确保您在存储过程中使用的数据库用户具有足够的权限来访问和操作涉及的所有数据库。这包括对表、视图、存储过程等对象的读取和写入权限。数据库连接:在存储过程中,您可能......
  • 另一个开源数据库管理工具HeidiSQL的使用及注意事项(轻量级替代navicate)
    1.此工具支持的数据库类型比较有限,主要有 MariaDB,MySQL,MicrosoftSQL,PostgreSQLandSQLite2.此工具占用资源较少,运行速度较快,当然缺点是功能也相对较少,但基本的建表查询等功能都有.3.可以与DBeaver进行互补,结合使用,比如其导出数据功能比DBeaver好用;创建表字段和......
  • 接口注意事项
    1接收接口使用同步或异步的优缺点同步:需要等待接口返回数据才能往下执行优点:实时性强,流程容易控制缺点:需要阻塞等待异步:无需等待接口返回数据即可往下执行优点:无需阻塞等待缺点:流程控制较为复杂,可能需要回调操作,更多的多线程开销使用场景:需要根据具体业务需求判断......
  • vue3+typescript +uniapp中select标签
    <select:value="state.year"@change="handleSelectChange($event.target)"> <option:value="i"v-for="iinstate.yearrange">{{i}}</option> </select> ts的代码:``相当于v-model<se......
  • uniapp项目实践总结(十)自定义滑动触摸组件
    在APP的日常开放过程中,我们经常可以看到上拉刷新、下拉刷新、左滑、右滑、触底加载等效果,那其中的原理是如何呢,又是如何实现的呢,下面就一探究竟。这篇文章主要是讲述自定义滑动触摸组件的方放,兼容网页H5端、微信小程序端和App端。目录准备工作原理分析组件实现实战......
  • 移动APP性能测试有什么注意事项?
    移动APP性能测试是移动应用开发过程中非常重要的一个环节,它能够有效地评估和验证应用在不同环境下的性能表现,为开发者提供宝贵的参考和改进的方向。在进行移动APP性能测试时,有一些注意事项需要我们关注,并且在测试完成后,获取一份详尽的测试报告也非常重要。1、明确测试的目......
  • 在uniapp中如何将PDF或者XML文件转化成base64?
    场景:如何将获取到的内网服务器的文件,传给我们的后台,把文件保存下来?1.使用uni.downloadFile()获取到文件的临时路径2.uniapp导入安装的的插件“image-tools”,把临时路径转化成base64传给后台。注意点:如果同时解析多个xml文件,后台可能会接收到乱码的情况,此时需要将base64使用enc......
  • API接口的对接流程和注意事项
    随着互联网技术的发展和应用的普及,API接口已经成为不同系统、不同应用之间进行交互和数据交换的重要方式。API接口使得不同的系统能够互相调用对方的功能,提高了系统的灵活性和扩展性。但是,在进行API接口对接的过程中,需要注意一些流程和事项,以确保对接的顺利进行和系统的稳定运行。......
  • avue表单组件后台拖拉拽框架avue-form-design在移动端vant框架与uniapp框架下的动态渲
    avue表单组件后台拖拉拽框架avue-form-design:https://github.com/sscfaith/avue-form-designavue表单组件后台拖拉拽框架avue-form-design在移动端vant框架与uniapp框架下的动态渲染转换适配待补充......