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

news/2024/11/17 7:47:43/文章来源:https://www.cnblogs.com/hjf-log/p/18200521

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/708852.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

夸克自动签到转存到emby

夸克自动签到不同于之前的阿里盘内夸克签到脚本,这里可以自动转存管理文件,添加到emby中 b站视频地址:https://www.bilibili.com/video/BV1ry411a7Lt 一、准备 你有服务器或者nas等等,有docker或者青龙都行。 由于nas在家关机了,我在外地。就不演示推到emby了。 来自于Cp0…

AI绘画拉取模型失败,DOS开启代理

我用了这么久的代理第一次知道DOS里面要开代理,惭愧惭愧。在我远程拉取模型的时候,挂科学也一直失败。在网上找报错找了很长时间没找到,最后经过一位群友的提示下,才知道问题出在DOS代理上面。直接看文章第一部分就行,要是直接tun不行,再看下面的直接开启tun这个是V2的开…

e语言 文本换行问题

我帮这人重写了下本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/18200506

【Quant102】如何计算 N 日斜率

一元线性回归的斜率公式是: \[k = \frac{(x - \bar{x})^T (y - \bar{y})}{\|x - \bar{x}\|^2} \]由于斜率具有平移不变性,x通常取 0 到窗口大小减一。 def slope(df, close_col=close, slope_col=slope, window=5, inplace=True):if not inplace: df = df.copy()x = np.arang…

利用MKL实现OpenCV的模板匹配(matchTemplate)

基于FFT实现OpenCV的模板匹配(matchTemplate) 以 TM_CCORR_NORMED 为例,因为这个实现简单,并且效率高。 先看公式 \[R(x,y)= \frac{\sum_{x,y} (T(x,y) \cdot I(x+x,y+y))}{\sqrt{ \sum_{x,y}T(x,y)^2 \cdot \sum_{x,y} I(x+x,y+y)^2}} \]显然,分子是I图和T图的卷积。 分母是…

主流原型设计工具介绍(●ϖ`●)

原型设计工具在产品设计、交互设计和用户体验设计中扮演着重要角色,本篇博客将介绍Axure RP、墨刀、Pixso、Adobe XD这4种主流原型设计工具。 Axure RP 特点强大的交互能力:强大的交互设计功能,支持复杂的交互流程和状态转换。 丰富的组件库:Axure RP 内置了大量的组件,包…

windev28 试用版 测试

下载地址 https://package.windev.com/pack/versiondemo/28/us/WDE28PACKDVDUS095g.zip建议迅雷下载 非常快 需要申请一个试用码 界面没啥变化 依旧只能生成32位程序,不过客户端在中国早就没落了 也没啥价值了 还不如去学electron

【Mybatis/Mybaits-Plus】【插件】插件执行时机

1 前言 我之前看过插件的执行过程:【Mybatis】【插件】Mybatis源码解析-插件机制,主要是通过一个 Executor 的创建以及执行过程串了一下插件,我们这里简单回忆下: (1)Mybatis 把所有的插件都放进了 InterceptorChain 类里的 interceptors 集合里 (2)插件的两个时机:入…

软件设计原则—开闭原则

对扩展开放,对修改关闭,使用接口或抽象类实现在程序需要进行拓展的时候,不能去修改原有的代码,而是实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。 想要达到这样的效果,我们需要使用接口和抽象类。 因为抽象灵活性好,适应性广,只要抽象的合理…

【开源】2024最新python豆瓣电影数据爬虫+可视化分析项目

项目介绍 【开源】项目基于python+pandas+flask+mysql等技术实现豆瓣电影数据获取及可视化分析展示,觉得有用的朋友可以来个一键三连,感谢!!! 项目演示 [video(video-C9B87WwE-1716106102936)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=120451806…

何恺明介绍

何恺明(Kaiming He),1984年出生于广东广州,人工智能科学家,麻省理工学院电气工程与计算机科学系副教授。 何恺明2003年高中毕业于广州市执信中学,为当年广东省高考满分状元。2003-2007年就读于清华大学物理系基础科学班,连续3年获得清华奖学金,本科毕业后进入香港中文…

【每周例题】力扣 C++ 一年中的第几天

一年中的第几天 题目 一年中的第几天 思路分析 1.substr函数分割字符串,stoi函数将字符串转为十进制 stoi函数介绍 substr函数介绍 2.判断是否为闰年,如果是闰年,则二月的天数+1 代码#include<bits/stdc++.h> using namespace std;int main() {int months[13] = { 0,3…