首页 > 其他分享 >7.10日工作总结双区BootLoad

7.10日工作总结双区BootLoad

时间:2024-07-10 21:56:56浏览次数:12  
标签:7.10 数据 程序 APP2 APP1 地址 BootLoad 双区 600H

今日把昨天遇到的问题解决了,昨天的问题果然还是在FLASH区刷写上,存在两个问题导致APP1区上刷写的程序不对,第一处问题出现在把APP2程序上的无效空间(如00H-600H,不是程序正常数据,程序地址从600H开始计数,但是KEIL生成的HEX转BIN文件,前600H也有数据虽然都是0,但是在IAP写入过程中需要删掉这部分,故在BOOT程序中,把接收到的前600H数据舍弃,判断地址,从600H开始接收到C00H结束,C00H后的数据才是真正要写到600H的数据,具体看前几次总结)排除选择上出了问题,太多变量导致混淆,把APP1区的地址错误的分配给了APP2区,第二处错误出现在读地址数据上,从APP2地址区读取数据写入到APP1地址中,在读的过程中每次选择16位数据存储到数组中,使用FOR循环时,忘记对地址自增,使得16位数据均为首地址的数据,导致APP1无法正常运行。
改正后,双区BOOTLOAD程序正常运行,在下载程序时若断开接收,APP2区数据不完整,不会复制到APP1区此时重新上电,正常进入原有程序即APP1区,若是在APP2复制到APP1区的过程中断电,重上电后会自动将APP2区程序复制到APP1区,复制完成后软复位正常运行新程序。
最近遇到了把数组传递给其他C文件中的函数,使用指针很方便,传入数组首地址,即数组名,如传入a[10]的首地址,则可以直接把a传给函数,函数声明为fun(*a),这样就可以将数组传入其他函数中。

标签:7.10,数据,程序,APP2,APP1,地址,BootLoad,双区,600H
From: https://www.cnblogs.com/xzaxs/p/18295103

相关文章

  • GitHub每日最火火火项目(7.10)
    项目名称:public-apis/public-apis项目介绍:这是一个集体列表,包含了各种免费的APIs。它可能为开发者提供了一个方便的资源,使他们能够更容易地找到和使用所需的APIs,从而加速开发进程。通过整合众多的免费APIs,该项目有助于促进开发社区的共享和合作,让开发者能够更高效......
  • 作业7.10
    练习:#include<stdio.h>#include<string.h>charname[100][100]={""};intscore[100]={0};//定义存储学生信息的数组intnum=0;//定义学生个数的变量voidinfo_in();voidinfo_out();voidinfo_max();voidinfo_sort();......
  • 闲话 24.7.10
    闲话啊,zzz真好玩啊!慢热型,战斗非重点,美术风格超赞。如果不排斥米家f2p游戏,推荐大家玩一玩。我是冲着妹妹去的未来会补一些杨表公式的证明。现在先咕!推歌:辰砂byLicisetal.feat洛天依AI增补:另类杨图对应杨表计数前置知识:杨表什么是另类?不是一般的杨图,就是另类的杨图......
  • SMU Summer 2024 Contest Round 3(7.10)
    寻找素数对思路:数的范围为10000,直接筛出所有范围内的质数,n2的枚举所有质数对和的情况#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#definePIIpair<int,int>constintN=1e4+5;vector<int>pri;intidx,st[N];voidinit(){for(in......
  • 7.8日BOOTLOAD总结(3)
    今天突破性进展,成功实现了SC92系列的单区远程升级功能,之前厂家给的DEMO程序存在一些问题,或者说是KEIL5软件的问题,导致FLASH分区内的程序烧写出现了问题。问题描述:用工具将BOOT和APP程序合并后,FLASH分区的01H-600H为BOOT程序,600H以后为APP程序,等同于先烧录APP程序,再烧录BOOT程序。......
  • 7.5日BOOTLOAD总结(2)
    今日研究一天SC的BOOTLOAD,首先是它的BOOT程序,我们只改了一点点参数直接拿过来用,然后把自己的APP程序中的串口函数改写了一下,它里面给了指令协议,直接套用,整理了一上午最后发现在APP程序中进不去BOOT程序,明明已经用串口助手给他发了命令,就是进不去,慢慢排查,发现接受不到帧头命令,后来......
  • 【译】VisualStudio.Extensibility 17.10:用 Diagnostics Explorer 调试您的扩展
    想象一下,创建的扩展比以往任何时候都运行得更快、更流畅!如果您最近还没有跟上,我们一直在努力改进VisualStudio.ExtensibilitySDK。VisualStudio.Extensibility帮助您构建在主IDE进程之外运行的扩展,以提高性能和可靠性。它还提供了一个时尚而直观的基于.NET8的API......
  • 史上最简单的bootloader【STM32F767】[【二】
    继上一篇史上最简单的bootloader【STM32F767】后,最近进一步研究了下bootloader。任务:bootloader不变,app自我复制,将app搬运到sram中运行。目的:1)学习bootloader;     2)没什么大用处,主要是学习---->看资料说是代码在sram中运行会快一点,本人没有测试过学习过程有点......
  • PIC18 bootloader之RS485 bootloader
                   了解更多关于bootloader的C语言实现,请加我Q扣:1273623966(验证信息请填bootloader),欢迎咨询或定制bootloader(在线升级程序)。    不知道为什么,现在工业控制领域也向汽车领域学习,产品需要带bootloader,产品出货后也要可......
  • Visual Studio 2022 v17.10 发布
    VisualStudio2022版本17.9 现已发布,带来了IDE各个领域的一系列性能增强。一些显着的改进包括:更快的WindowsFormsdesigner加载、更快的Razor着色、更快的解决方案加载以及减少的DLL开销。WindowsFormsdesigner加载速度此前有反馈称,在针对.NETC......