首页 > 编程语言 >stm32f103c8t6使用bootloader进行ymodem下载和app程序测试,部分总结(暂未测试中断向量偏移问题)

stm32f103c8t6使用bootloader进行ymodem下载和app程序测试,部分总结(暂未测试中断向量偏移问题)

时间:2024-05-19 17:40:24浏览次数:27  
标签:中断向量 get key2 app 程序 测试 跳转 bootloader ymodem

bootloader程序部分(功能测试)

    print_boot_message();
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
    uint8_t key_get_state;
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
        key_get_state = get_key();
        switch(key_get_state)
        {
            case 1: //key1//////////////////////////////////////
                printf("start app...\r\n");
                HAL_Delay(50);
                //中断向量偏移
                if (!jump_app(boot_parameter.addr)) //地址正确跳转返回jump_app 1,否则返回0 no program
                {
                        printf("no program\r\n");//跳转失败
                        HAL_Delay(1000);
                }
                printf("start app failed\r\n");//继续到这一步表示跳转app失败
                break;
                
            case 2: //key2//////////////////////////////////////
                printf("update app program...\r\n");
                HAL_Delay(50);
                SerialDownload();
                break;
            
        }
main

mian中主要程序部分在以上部分,先打印信息

 

然后循环判断两个按键,这里设置了key1和key2

key1是跳转到指定地址的app程序,这里程序地址是0x08006000

key2表示进行ymodem下载程序,把bin固件下载到0x08006000,固件不能使用hex带地址信息无法成功跳转

key2的程序暂未限制固件大小为40K,因为给stm32f103c8t6的app留的程序大小0x00010000=40K,之后增加验证

 

booloader注意魔术棒的开始地址和大小,中间0x08005000到0x08006000给一些配置参数留的空间

 

 

测试程序效果:(使用xshell进行ymodem传输,因为有个人免费版)

按下key2进入ymodem传输,stm32的串口1会不断发送C,准备接收文件

 右键,选择传输,ymodem,用ymodem发送

 

 找到mdk生成的stm32 APP的bin文件,bin文件生成方式看上一篇

 可以看到传输完成,打印文件名和大小

在按下key1可以进入app程序部分,就是0x08006000的开始

 打印信息,已经进入app程序了,我这里是让led循环闪烁效果正常,bootloader程序和app程序上传到网盘中

链接:https://pan.baidu.com/s/13EIlF0wSeVHDq5EsaOq36w?pwd=sxkj
提取码:sxkj

 

标签:中断向量,get,key2,app,程序,测试,跳转,bootloader,ymodem
From: https://www.cnblogs.com/hjf-log/p/18200521

相关文章

  • mdk生成bin文件,stm32 bootloader跳转地址问题
    stm32的bootloader使用ymodem烧写app程序,app程序不能使用hex文件hex文件带了地址信息,需要使用bin文件作为app程序写入打开魔术棒在这里填入fromelf-bin-output./stm32f103_app/stm32f103_app.bin./stm32f103_app/stm32f103_app.axf   其中./表示项目所在位置,居......
  • 国密算法测试
    点击查看代码#!/usr/bin/python#encoding:utf-8importtimeimportbase64fromgmsslimportsm2,sm4importcodecsSM2_PRIVATE_KEY='00B9AB0B828FF68872F21A837FC303668428DEA11DCD1B24429D0C99E24EED83D5'SM2_PUBLIC_KEY='B9C9A6E04E9C91F7BA880429......
  • 测试仔的开发者日记:做了近俩月的开发感受.......
    写在前面在大约一个月前,我在掘金上发了《我一个测试仔,做了20多天开发的感受......》这样一篇文章。在文末我看到了很多评论,虽然,我没有给出任何回应,但每一条评论都有认真看,真的很感谢每一位朋友的关注。向钱看齐,向钱看这是评论区中,很多人的看法,都是本着自身利益最大化原则,一......
  • JS测试文章
    目录1.HOOK1.1.直接替换函数1.2.为对象的属性赋值的方式2.chrome控制台3.函数3.1.箭头函数3.2.arguments对象4.对象4.1.原型继承4.2.访问对象内的方法:4.3.对象构造器函数4.4.内建构造器4.5.内建构造器的省略写法4.6.JSON对象4.7.JSONVSXML1.HOOK原理:JS是一......
  • [20240511]测试问题sql语句对数据库性能影响.txt
    [20240511]测试问题sql语句对数据库性能影响.txt--//五一前遇到的问题,生产系统应用程序升级,但是3个表忘记建立,而编写的程序可能存在问题,导致频繁调用这些根本不可能执行的sql--//语句,正常情况下应该报ORA-00942:tableorviewdoesnotexist,很奇怪的同事反映应用前台根本......
  • 25.interface测试
    #-*-coding:utf-8-*-importjsonimportpytestimportrequestsimportjsonpathfromlog_utilimportloggerclassTestLitemall:defsetup_class(self):#管理端接口url="https://litemall.hogwarts.ceshiren.com/admin/auth/login"us......
  • Camera测试指导学习
    camera的整机老化测试中,有时候客户会要求测试每次开机后首次打开相机是否正常。手动打开相机会严重影响测试效率,所以编写次脚本用于测试。相机的基本操作:入口,模式切换,前后摄像头切换;相机的模式:一级模式,夜景,人像,录像;设置菜单功能:拍照设置,视频设置,通用设置;外设场景:蓝牙耳机,有线......
  • app测试工具monkey
    python是一种广泛使用的解释型,高级和通用的编程语言。支持多种编程范型,包括函数式,指令是,结构化,面向对象和反射式编程,它拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本事拥有一个巨大而广泛的标准库。Monkey是Android中的一个命令行工具,可以运行在模拟器或者实际设......
  • Django测试与持续集成:从入门到精通
    title:Django测试与持续集成:从入门到精通date:2024/5/1816:38:41updated:2024/5/1816:38:41categories:后端开发tags:Django测试CI/CD优化部署监控迭代第1章:Django测试基础1.1Django测试框架概述Django测试框架是Djangoweb框架的一部分,提供了一个强......
  • Angular-测试驱动开发-全-
    Angular测试驱动开发(全)原文:zh.annas-archive.org/md5/60F96C36D64CD0F22F8885CC69A834D2译者:飞龙协议:CCBY-NC-SA4.0前言本书将为读者提供一个关于JavaScript测试驱动开发(TDD)的完整指南,然后深入探讨Angular的方法。它将提供清晰的、逐步的示例,不断强调TDD的最佳实......