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

YunTu Forum

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

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

已定时 已固定 已锁定 已移动 YTM32B1L系列
8 帖子 4 发布者 160 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 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 */

                  1 条回复 最后回复
                  0

                • 云途开发生态介绍

                  快速上手云途开发生态

                • 云途论坛规则/Yuntu Forum Rules

                  发帖前请查看

                • YT CONFIG TOOL调查问卷

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

                • can
                  19
                  demo
                  19
                  uds
                  11
                  lin stack
                  7
                  fbl
                  5
                  yt-link
                  5
                  adc模块
                  4
                  md14
                  4
                  Online Users
                  nrx11N
                  nrx11
                  houjun_xiaoH
                  houjun_xiao
                  zhangbo1Z
                  zhangbo1
                  runR
                  run
                  ZoneZ
                  Zone
                  LCZOUYIWENL
                  LCZOUYIWEN
                  Tiger987T
                  Tiger987
                  majorM
                  major
                  • 登录

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