nqbkaqkt 发表于 2025-5-29 22:14:52

求大神回复下,8051U 用那个来验证呢,


soma 发表于 2025-5-30 07:53:35

8位模式用8h,32位模式用32g

ercircle 发表于 2025-5-30 08:56:17

官网软件示例里是传统方法,Ai8051U特有的用户系统区可以看下这篇帖子:
https://www.stcaimcu.com/thread-15517-1-1.html

nqbkaqkt 发表于 2025-6-3 10:51:19

ercircle 发表于 2025-5-30 08:56
官网软件示例里是传统方法,Ai8051U特有的用户系统区可以看下这篇帖子:
https://www.stcaimcu.com/thread- ...

DWORD xdata DfuFlag _at_ 0x1ffc;这个是STC32G8K的。
DWORD xdata DfuFlag _at_ 0x7ffc; 8051是32K ,是这样子改动么


ercircle 发表于 2025-6-3 10:55:59

nqbkaqkt 发表于 2025-6-3 10:51
DWORD xdata DfuFlag _at_ 0x1ffc;这个是STC32G8K的。
DWORD xdata DfuFlag _at_ 0x7ffc; 8051是32K , ...

要放末尾的话可以这样改,注意同时修改ISP和APP地址

nqbkaqkt 发表于 2025-6-3 11:29:08

ercircle 发表于 2025-6-3 10:55
要放末尾的话可以这样改,注意同时修改ISP和APP地址

void dfu_check()
{
        P2M0 = 0x00; P2M1 = 0x00;

    P3M1 &= ~0x08;
    P3PU |= 0x08;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    delay();
    if ((DfuFlag != DFU_TAG) &&
      (*(BYTE code *)(LDR_SIZE) == 0x02) &&
      (*(WORD code *)(LDR_SIZE + 1) >= LDR_SIZE + 3))
    {
      P3M1 |= 0x08;
      P3PU = 0x00;
      ((void (far *)())(0xff0000 + LDR_SIZE))();
    }
    P23 = 0;
    P3M1 |= 0x08;
    P3PU = 0x00;
    DfuFlag = 0;
}
是同时改了的,但是第一次就直接进入if这个判断里面了,导致没法下载,这个是怎么回事呢?

ercircle 发表于 2025-6-3 11:31:19

nqbkaqkt 发表于 2025-6-3 11:29
void dfu_check()
{
        P2M0 = 0x00; P2M1 = 0x00;


是从App跳转过来吗?还是首次烧录
首次烧录同时烧录了App和Isp?
从App跳转过来前未给DfuFlag 置位?

nqbkaqkt 发表于 2025-6-3 11:39:25

ercircle 发表于 2025-6-3 11:31
是从App跳转过来吗?还是首次烧录
首次烧录同时烧录了App和Isp?
从App跳转过来前未给DfuFlag 置位? ...

忘记说了,是首次下载,只下载了ISP

ercircle 发表于 2025-6-3 11:54:41

nqbkaqkt 发表于 2025-6-3 11:39
忘记说了,是首次下载,只下载了ISP


参考此视频先跑通,再修改试试。
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=10139&pid=120384

nqbkaqkt 发表于 2025-6-3 14:40:29

ercircle 发表于 2025-6-3 11:54
参考此视频先跑通,再修改试试。
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid ...

用USB能首次能下载了,但是UART还是不行
页: [1] 2
查看完整版本: 求大神回复下,8051U 用那个来验证呢,