跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1L系列
  4. YTM32B1L1 boot跳转无法正常运行问题

YTM32B1L1 boot跳转无法正常运行问题

已定时 已固定 已锁定 已移动 YTM32B1L系列
9 帖子 5 发布者 1.1k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Jones_ChenJ 离线
    Jones_ChenJ 离线
    Jones_Chen
    写于 最后由 编辑
    #1

    ffc7e02f-2f6d-4b83-b64f-9cec091604f5-image.png
    boot程序,在main函数里面等待5S左右跳转
    1599981d-06e0-4de9-ba9b-43bdadf2f9f6-image.png
    d65b2402-e44c-4c64-9a02-3360e85410e2-image.png
    跳转程序,UPDATA_APP_START_ADDR地址值为0xA000
    af89eb9d-eed9-428b-8176-f3c3fa3bb867-image.png
    boot程序的ICF文件配置
    e8681af9-41b8-4404-8a8a-cae14d5cb795-image.png
    APP程序的ICF文件配置
    按照上面的代码和配置,我执行跳转后,APP程序没有运行起来,如果单独烧录APP程序的,是可以正常跑的。请大神帮忙看看,是不是什么地方还没有配置到,需要处理的??

    1 条回复 最后回复
    0
    • Jones_ChenJ 离线
      Jones_ChenJ 离线
      Jones_Chen
      写于 最后由 编辑
      #2

      https://forum.ytmicro.com/topic/1200/ytm32b1le15-uds-can-fbl公版操作指南
      参考这份链接就可以了

      1 条回复 最后回复
      0
      • zhangbo1Z 离线
        zhangbo1Z 离线
        zhangbo1
        写于 最后由 编辑
        #3

        问题解决了吗,没有公版操作指南中的环境。我的也是跳转不到APP。有什么其他设置吗?

        1 条回复 最后回复
        0
        • ganyongchaoG 离线
          ganyongchaoG 离线
          ganyongchao YunTu
          写于 最后由 编辑
          #4

          Jones_Chen zhangbo1 在boot跳转app之前,deinit boot工程初始化使用的驱动;关闭boot工程初始化使用的驱动的外设中断;如果有SysTick内核中断之类的也关闭一下中断;操作试试看

          1 条回复 最后回复
          0
          • zhangbo1Z 离线
            zhangbo1Z 离线
            zhangbo1
            写于 最后由 编辑
            #5

            嗯,我看公版的源码只是关闭驱动和中断。我没有用什么驱动,只要禁止全局中断就可以吧。用jflash合并BOOT+APP成一个BIN文件,然后下载到芯片里,这样验证可以吗?
            void shutdown_drivers(void)
            {
            INT_SYS_DisableIRQGlobal();
            }
            哎,
            这个问题折腾快一两周了,一直找不到什么原因。有没有不用CAN升级的简易BOOT跳转APP的例子呀。

            HAIYANGH 1 条回复 最后回复
            0
            • HAIYANGH 离线
              HAIYANGH 离线
              HAIYANG YunTu
              在 回复了 zhangbo1 最后由 编辑
              #6

              zhangbo1 你可以在boot里初始化完时钟就直接跳转,不要初始化其它模块,然后用jflash下载合并的bin文件;attach进去看一下boot直接跳能不能成功跳转;

              1 条回复 最后回复
              0
              • zhangbo1Z 离线
                zhangbo1Z 离线
                zhangbo1
                写于 最后由 编辑
                #7

                HAIYANG 我就是初始化晚就跳转。工程是用YT-TOOL重新创建的LE04的自动源码生成,然后按照官方LE05-FBL修改的。用JFLASH和APP合并MERGE后,断电再上电没反应。你提到的attach是使用那个工具呀,jflash没有找到attach的菜单选项呀。
                /* USER CODE BEGIN Header /
                /
                you can remove the copyright /
                /

                • Copyright 2020-2025 Yuntu Microelectronics Co., Ltd.
                • All rights reserved.
                • SPDX-License-Identifier: BSD-3-Clause
                • @file main.c
                • @brief

                */

                /* USER CODE END Header /
                #include "sdk_project_config.h"
                /
                Includes ------------------------------------------------------------------*/

                /* Private includes ----------------------------------------------------------/
                /
                USER CODE BEGIN Includes /
                /
                USER CODE END Includes */

                /* Private typedef -----------------------------------------------------------/
                /
                USER CODE BEGIN PTD /
                /
                USER CODE END PTD */

                /* Private define ------------------------------------------------------------/
                /
                USER CODE BEGIN PD /
                /
                USER CODE END PD */

                /* Private macro -------------------------------------------------------------/
                /
                USER CODE BEGIN PM /
                /
                USER CODE END PM */

                /* Private variables ---------------------------------------------------------/
                /
                USER CODE BEGIN PV /
                /
                USER CODE END PV */

                #define APP_IMAGE_START 0x4000
                /* Private variables ---------------------------------------------------------/
                /
                USER CODE BEGIN PV /
                /
                USER CODE END PV */

                volatile uint32_t appEntry, appStack;
                /* Private function declare --------------------------------------------------/
                /
                USER CODE BEGIN PFDC /
                /
                USER CODE END PFDC */
                static void Board_Init(void);

                /* Private user code ---------------------------------------------------------/
                /
                USER CODE BEGIN 0 /
                /
                USER CODE END 0 */

                void shutdown_drivers(void)
                {
                //lpTMR_DRV_Deinit(0);
                //FLEXCAN_DRV_Deinit(0);
                //INT_SYS_DisableIRQ(lpTMR0_IRQn);
                INT_SYS_DisableIRQGlobal();
                }

                void bootup_application(uint32_t appEntry, uint32_t appStack)
                {
                static void (jump_to_application)(void);
                static uint32_t stack_pointer;
                jump_to_application = (void (
                )(void))appEntry;
                stack_pointer = appStack;

                SCB->VTOR = APP_IMAGE_START;
                
                __set_PSP(stack_pointer);
                __set_MSP(stack_pointer);
                
                jump_to_application();
                

                }

                void JumpTo_Application(void)
                {
                shutdown_drivers();
                appStack = (volatile uint32_t) APP_IMAGE_START; /* setup app jump */
                appEntry = (volatile uint32_t)(APP_IMAGE_START + 4);
                bootup_application(appEntry,appStack);

                while(1){};
                

                }

                /**

                • @brief The application entry point.

                • @retval int
                  /
                  int main(void)
                  {
                  /
                  USER CODE BEGIN 1 */
                  RCU->RSSR = 0x1;

                  SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
                  SysTick_CTRL_TICKINT_Msk |
                  SysTick_CTRL_ENABLE_Msk;
                  /* USER CODE END 1 */
                  Board_Init();
                  //StayInBoot_Init();

                  //INT_SYS_EnableIRQ(lpTMR0_IRQn);

                  JumpTo_Application();
                  while (1)
                  {
                  //StayInBoot_Task();
                  }
                  }

                static void Board_Init(void)
                {
                }

                /* USER CODE BEGIN 4 /
                /
                USER CODE END 4 */

                1 条回复 最后回复
                0
                • zhangbo1Z 离线
                  zhangbo1Z 离线
                  zhangbo1
                  写于 最后由 编辑
                  #8

                  这是应用程序,通过YTTOOLS生成LE04的框架,然后修改MAIN.C,PB13端口的LED闪烁。生成的BIN文件,使用JFLASH烧录到0地址,上电重启,可以看到LED灯变化。和BOOT合并在0x4000偏移,然后再烧录,就没有反映了。
                  /* USER CODE BEGIN Header /
                  /
                  you can remove the copyright /
                  /

                  • Copyright 2020-2025 Yuntu Microelectronics Co., Ltd.
                  • All rights reserved.
                  • SPDX-License-Identifier: BSD-3-Clause
                  • @file main.c
                  • @brief

                  */

                  /* USER CODE END Header /
                  #include "sdk_project_config.h"
                  /
                  Includes ------------------------------------------------------------------*/

                  /* Private includes ----------------------------------------------------------/
                  /
                  USER CODE BEGIN Includes /
                  /
                  USER CODE END Includes */

                  /* Private typedef -----------------------------------------------------------/
                  /
                  USER CODE BEGIN PTD /
                  /
                  USER CODE END PTD */

                  /* Private define ------------------------------------------------------------/
                  /
                  USER CODE BEGIN PD /
                  /
                  USER CODE END PD */

                  /* Private macro -------------------------------------------------------------/
                  /
                  USER CODE BEGIN PM /
                  /
                  USER CODE END PM */

                  /* Private variables ---------------------------------------------------------/
                  /
                  USER CODE BEGIN PV /
                  /
                  USER CODE END PV */

                  /*! @brief User configuration cfg InitConfigArr0 array /
                  const pin_settings_config_t g_pin_mux_InitConfigArr0[1] = {
                  /
                  PTB_13-32-GPIO- */
                  {
                  .base = PCTRLB,
                  .pinPortIdx = 13U,
                  .pullConfig = PCTRL_INTERNAL_PULL_NOT_ENABLED,
                  .rateSelect = PCTRL_FAST_SLEW_RATE,
                  .passiveFilter = false,
                  .driveSelect = PCTRL_LOW_DRIVE_STRENGTH,
                  .mux = PCTRL_MUX_AS_GPIO,
                  .intConfig = PCTRL_DMA_INT_DISABLED,
                  .clearIntFlag = false,
                  .digitalFilter = false,
                  .filterConfig ={
                  .width = 0
                  },
                  .gpioBase = GPIOB,
                  .direction = GPIO_OUTPUT_DIRECTION,
                  .initValue = 0,
                  },
                  };

                  #define LED_OUT_GPIO GPIOB
                  #define LED_OUT_PIN 13
                  #define LED_OUT_HIGH() PINS_DRV_WritePin(LED_OUT_GPIO, LED_OUT_PIN, HIGH)
                  #define LED_OUT_LOW() PINS_DRV_WritePin(LED_OUT_GPIO, LED_OUT_PIN, LOW)

                  #define NULL_PTR ((void *)0)

                  #define TRUE (1)
                  #define FALSE (0)

                  #define HIGH (1)
                  #define LOW (0)

                  /* USER CODE END Includes */

                  static void Board_Init(void);

                  void McuSystem_Init(void)
                  {
                  CLOCK_SYS_Init(g_clockManConfigsArr,CLOCK_MANAGER_CONFIG_CNT,g_clockManCallbacksArr,CLOCK_MANAGER_CALLBACK_CNT);
                  CLOCK_SYS_UpdateConfiguration(CLOCK_MANAGER_ACTIVE_INDEX,CLOCK_MANAGER_POLICY_AGREEMENT);
                  PINS_DRV_Init(1,g_pin_mux_InitConfigArr0);

                  }
                  /**

                  • @brief The application entry point.

                  • @retval int
                    */
                    int main(void)
                    {
                    long iIdx = 0;

                    /* USER CODE BEGIN 1 */
                    RCU->RSSR = 0x1;

                    McuSystem_Init();

                    while(1)
                    {
                    for(iIdx=0;iIdx<0xffff;iIdx++)
                    {
                    }
                    LED_OUT_LOW();
                    for(iIdx=0;iIdx<0xffff;iIdx++)
                    {
                    }
                    LED_OUT_HIGH();
                    }

                    /* USER CODE END 3 */
                    }

                  static void Board_Init(void)
                  {
                  }

                  /* USER CODE BEGIN 4 /
                  /
                  USER CODE END 4 */

                  PrinceWP 1 条回复 最后回复
                  0
                  • PrinceWP 离线
                    PrinceWP 离线
                    PrinceW
                    在 回复了 zhangbo1 最后由 编辑
                    #9

                    zhangbo1 请问问题解决了么,我也遇到了同样的问题

                    1 条回复 最后回复
                    0

                  • 云途开发生态介绍

                    快速上手云途开发生态

                  • 云途论坛规则/Yuntu Forum Rules

                    发帖前请查看

                  • YT CONFIG TOOL调查问卷

                    帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

                  • can
                    19
                    demo
                    19
                    uds
                    12
                    lin stack
                    10
                    md14
                    6
                    fbl
                    5
                    yt-link
                    5
                    adc模块
                    4
                    Online Users
                    BoqiangHaoB
                    BoqiangHao
                    Tiger987T
                    Tiger987
                    OliverChenO
                    OliverChen
                    zz666Z
                    zz666
                    lzh123L
                    lzh123
                    xianghanX
                    xianghan
                    gqjG
                    gqj
                    YQHY
                    YQH
                    爪云爪
                    爪云
                    ysogY
                    ysog
                    DerrickD
                    Derrick
                    runR
                    run
                    xiangyuX
                    xiangyu
                    WRW
                    WR
                    yt0503Y
                    yt0503
                    • 登录

                    • 登录或注册以进行搜索。
                    • 第一个帖子
                      最后一个帖子
                    0
                    • 版块
                    • 最新
                    • 标签
                    • 热门