硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2165|回复: 10
收起左侧

[PC软件] H7-TOOL开始支持一键升级APP和eMMC,无需之前那样分别升级

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2021-6-23 08:42:44 | 显示全部楼层 |阅读模式


通过这种升级,让操作更新人性化。

QQ截图20210623084206.png
回复

使用道具 举报

4

主题

139

回帖

151

积分

初级会员

积分
151
QQ
发表于 2021-6-23 08:52:08 | 显示全部楼层
越来越好用了
回复

使用道具 举报

4

主题

166

回帖

178

积分

初级会员

积分
178
发表于 2021-6-23 09:12:27 | 显示全部楼层

请教下,我看h7tool的boot是这么写的uint32_t i=0;
        void (*SysMemBootJump)(void);        /* 声明一个函数指针 */
        __IO uint32_t BootAddr = 0x8100000;  /* APP 地址 */

        /* 关闭全局中断 */
        DISABLE_INT();

        /* 关闭滴答定时器,复位到默认值 */
        SysTick->CTRL = 0;
    SysTick->LOAD = 0;
    SysTick->VAL = 0;

        /* 设置所有时钟到默认状态,使用HSI时钟 */
        HAL_RCC_DeInit();

        /* 关闭所有中断,清除所有中断挂起标志 */
        for (i = 0; i < 8; i++)
        {
                NVIC->ICER=0xFFFFFFFF;
                NVIC->ICPR=0xFFFFFFFF;
        }       

        /* 使能全局中断 */
        ENABLE_INT();

        /* 跳转到系统BootLoader,首地址是MSP,地址+4是复位中断服务程序地址 */
        SysMemBootJump = (void (*)(void)) (*((uint32_t *) (BootAddr + 4)));

        /* 设置主堆栈指针 */
        __set_MSP(*(uint32_t *)BootAddr);
       
        /* 在RTOS工程,这条语句很重要,设置为特权级模式,使用MSP指针 */
        __set_CONTROL(0);

        /* 跳转到系统BootLoader */
        SysMemBootJump();

        /* 跳转成功的话,不会执行到这里,用户可以在这里添加代码 */
        while (1)
        {

        }

h7有个教程的boot是pFunction Jump_To_Application;
        uint32_t StackAddr;
        uint32_t ResetVector;
       
        /* 关中断 */
        DISABLE_INT();
       
        SCB_DisableDCache();
       
        StackAddr = *(__IO uint32_t*)APPLICATION_ADDRESS;                        //0x08002000;
        ResetVector = *(__IO uint32_t*)(APPLICATION_ADDRESS + 4);        //0x08002004;
       
        /* Initialize user application's Stack Pointer */
        __set_MSP(StackAddr);                /* 设置主栈指针 */

        /* 设置中断向量表地址 */
//        *(uint32_t *)0xE000ED08 = StackAddr;

        /* 函数指针赋值 */
        Jump_To_Application = (pFunction)ResetVector;               
        Jump_To_Application();
这俩的区别中开中断,滴答定时器,和特权模式msp这些重要吗,还是两种方式都可以
回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

积分
1475
发表于 2021-6-23 09:13:36 | 显示全部楼层
牛逼,看来下一版更新有内容超级多
代码不规范,亲人两行泪!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2021-6-23 09:22:07 | 显示全部楼层
yuanzhongda 发表于 2021-6-23 09:12
请教下,我看h7tool的boot是这么写的uint32_t i=0;
        void (*SysMemBootJump)(void);        /* 声明一个 ...

1、咨询错人了,这个是坛友。
2、代码复制粘贴反了,上面代码是V7板子的,下面代码是TOOL的
回复

使用道具 举报

4

主题

166

回帖

178

积分

初级会员

积分
178
发表于 2021-6-23 09:24:32 | 显示全部楼层
确实点错了,那硬汉哥这俩区别的原因能帮忙分析下吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2021-6-23 09:37:38 | 显示全部楼层
yuanzhongda 发表于 2021-6-23 09:24
确实点错了,那硬汉哥这俩区别的原因能帮忙分析下吗

V7的那个通用版,各种应用场景都适用,TOOL的是专用版
回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

积分
1475
发表于 2021-6-23 14:55:41 | 显示全部楼层
eric2013 发表于 2021-6-23 09:37
V7的那个通用版,各种应用场景都适用,TOOL的是专用版

DSP功能什么时候整合到TOOL上
代码不规范,亲人两行泪!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2021-6-23 14:57:21 | 显示全部楼层
missfox 发表于 2021-6-23 14:55
DSP功能什么时候整合到TOOL上

已经在整理了,做几个纯C的DSP代码,后面用到TOOL的上位机上。
回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

积分
1475
发表于 2021-6-24 08:45:10 | 显示全部楼层
eric2013 发表于 2021-6-23 14:57
已经在整理了,做几个纯C的DSP代码,后面用到TOOL的上位机上。

666
代码不规范,亲人两行泪!
回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2021-6-28 11:16:54 | 显示全部楼层
yuanzhongda 发表于 2021-6-23 09:24
确实点错了,那硬汉哥这俩区别的原因能帮忙分析下吗

还要注意DeInit函数的有效执行
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 15:54 , Processed in 0.296938 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表