找回密码
 立即注册

微信扫码登录

查看: 1793|回复: 6

[USB] 求TLSR8258 USB/HID bootloader

[复制链接]

3

主题

8

回帖

277

积分

华贵铂金

积分
277
发表于 2024-9-26 19:30:40 | 显示全部楼层 |阅读模式
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: TLSR8258F512ET48
驱动SDK版本:
如题,这个应该是比较实用的软件升级方式,目前基于UART的Bootloader太慢了。

0

主题

11

回帖

66

积分

不屈白银

积分
66
发表于 2024-9-29 18:22:19 | 显示全部楼层
您好,如果您使用的是 platform_sdk, 目前是没有提供 HID  OTA 的示例,如果要使用 HID 进行固件升级需要自己基于 HID demo 实现。

3

主题

8

回帖

277

积分

华贵铂金

积分
277
 楼主| 发表于 2025-3-23 21:31:35 | 显示全部楼层
本帖最后由 lqdjdy 于 2025-3-23 21:35 编辑
TL_LX 发表于 2024-9-29 18:22
您好,如果您使用的是 platform_sdk, 目前是没有提供 HID  OTA 的示例,如果要使用 HID 进行固件升级需要自 ...

能否提供一下bootloader启动原理。现在已经实现了USB HID Bootloader 下载程序到0x8000。参考UART Bootloader源码,实现如下ram加载函数, 但无法正常运行0x8000的程序。
注:烧录uart bootloader程序,可以正常启动,说明USB HID下载到0x8000的用户程序没有问题。

#define RESV_FOR_APP_RAM_CODE_SIZE                        0x2000
#define MCU_RAM_START_ADDR                                0x840000
void LoadRamAndReboot(u32 addr_load)
{
  u32 ramcode_size = 0;
  flash_read_data(addr_load + 0x0c, 2, (u8 *)&ramcode_size);
  ramcode_size *= 16;

  if(ramcode_size > RESV_FOR_APP_RAM_CODE_SIZE){
  ramcode_size = RESV_FOR_APP_RAM_CODE_SIZE; // error, should not run here
  }
  println("load to ram...ramsize:%x", ramcode_size);
  flash_read_data(addr_load, ramcode_size, (u8 *)MCU_RAM_START_ADDR); // copy ram code
  WRITE_REG8(0x602, 0x88);
}


int main (void)
{
  //DEBUG_TX_PIN_INIT();

  PLATFORM_INIT;
  CLOCK_INIT;

        gpio_set_func(LED1, AS_GPIO);
        gpio_set_output_en(LED1,1);


  gpio_set_func(KEY4 , AS_GPIO);
  gpio_write(KEY4, 1);
  gpio_set_output_en(KEY4 , 0);
  gpio_set_input_en(KEY4 , 1);
  gpio_setup_up_down_resistor(KEY4, PM_PIN_PULLUP_10K);

  sleep_ms(10);

  if(!gpio_read(KEY4))
  {
    println("Key down");
    gpio_write(LED1, 1);
  }else
        {
          gpio_write(LED1, 0);
    println("Key up, run to 0x8000");

    LoadRamAndReboot(0x8000);
        }
  sleep_ms(10);

  user_init();

  while (1) {
    main_loop ();
  }
  return 0;
}


0

主题

11

回帖

66

积分

不屈白银

积分
66
发表于 2025-3-24 11:22:48 | 显示全部楼层
您好,platform_sdk 默认是没有 bootloader 的,如果需要的话您可以到对应 SDK 板块看下是否有 bootloader 的文档

3

主题

8

回帖

277

积分

华贵铂金

积分
277
 楼主| 发表于 2025-3-24 13:22:30 | 显示全部楼层
TL_LX 发表于 2025-3-24 11:22
您好,platform_sdk 默认是没有 bootloader 的,如果需要的话您可以到对应 SDK 板块看下是否有 bootloader  ...

找不到这方面更多的资料,能否提供TelinkIoTStudio\tools\libusbBDT\bin\目录下dut_8258_flash_v0005.bin, dut_8258_flash_v0003.bin的源码?

0

主题

11

回帖

66

积分

不屈白银

积分
66
发表于 2025-3-24 13:47:13 | 显示全部楼层
您好,这个源码是不开放的

3

主题

8

回帖

277

积分

华贵铂金

积分
277
 楼主| 发表于 2025-3-24 15:15:00 | 显示全部楼层
TL_LX 发表于 2025-3-24 13:47
您好,这个源码是不开放的

就差最后一步了,发现只要调用过cpu_wakeup_init这个函数,调用WRITE_REG8(0x602, 0x88);才有效,请问一下,能否提供一下cpu_wakeup_init具体实现,或者说明一下如何才能链接到这个库函数。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2025-4-2 13:47 , Processed in 0.086898 second(s), 21 queries .

Powered by Telink 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

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