您尚未登录。

#1 Re: Cortex M0/M3/M4/M7 » 开源CH551/2实现的汇编优化高速DAP-Link (CMSIS-DAP v2) » 2022-08-30 18:50:33

@posystorage
抱歉 看到dap那边调用是理解了这个buffer的设置 不过这些buffer设置有些混乱 另外dap真的需要收发各256字节的buffer吗 我目前打算用usb外设支持的双buffer模式尝试一下 感觉应该是够用的

#2 Re: Cortex M0/M3/M4/M7 » 开源CH551/2实现的汇编优化高速DAP-Link (CMSIS-DAP v2) » 2022-08-28 18:08:18

posystorage 说:

@EListen
端点2和3应该是串口缓存buff,使用256字节空间做fifo的,你看下汇编部分就会发现

我如果没有理解错 你应该是单独开辟了缓冲区 而且指定了段地址
混用usb buff 和 串口buff 还是比较危险的吧

UINT8X Ep0Buffer[THIS_ENDP0_SIZE] _at_ 0x0000;  //端点0 OUT&IN缓冲区,必须是偶地址
UINT8X Ep1BufferO[THIS_ENDP0_SIZE] _at_ 0x0040; //端点1 OUT双缓冲区,必须是偶地址 Not Change!!!!!!
UINT8X Ep1BufferI[THIS_ENDP0_SIZE] _at_ 0x0080; //端点1 IN双缓冲区,必须是偶地址 Not Change!!!!!!

//100,140,180,1C0
UINT8X Ep2BufferO[4 * THIS_ENDP0_SIZE] _at_ 0x0100; //端点2 OUT双缓冲区,必须是偶地址
//200,240,280,2C0
UINT8X Ep3BufferI[4 * THIS_ENDP0_SIZE] _at_ 0x0200; //端点3 IN双缓冲区,必须是偶地址

UINT8I UART_RX_Data_Buff[ENDP1_SIZE];
UINT8X UART_TX_Data_Buff[256]_at_ 0x0300;

我自己是打算重写ch552的daplink的 想加入rtx51tiny的系统 看的比较仔细吧 你看一下应该是可以砍掉不少给usb的缓冲区

#3 Re: Cortex M0/M3/M4/M7 » 开源CH551/2实现的汇编优化高速DAP-Link (CMSIS-DAP v2) » 2022-08-28 11:13:06

发现个问题楼主代码中给端点1端点2端点3分配了64*4 即256字节的buffer

UINT8X Ep0Buffer[THIS_ENDP0_SIZE] _at_ 0x0000;  //端点0 OUT&IN缓冲区,必须是偶地址
UINT8X Ep1BufferO[THIS_ENDP0_SIZE] _at_ 0x0040; //端点1 OUT双缓冲区,必须是偶地址 Not Change!!!!!!
UINT8X Ep1BufferI[THIS_ENDP0_SIZE] _at_ 0x0080; //端点1 IN双缓冲区,必须是偶地址 Not Change!!!!!!
//100,140,180,1C0
UINT8X Ep2BufferO[4 * THIS_ENDP0_SIZE] _at_ 0x00C0; //端点2 OUT双缓冲区,必须是偶地址
//200,240,280,2C0
UINT8X Ep3BufferI[4 * THIS_ENDP0_SIZE] _at_ 0x01C0; //端点3 IN双缓冲区,必须是偶地址

但到了实际的配置 全部都是单缓的配置

UEP2_DMA = Ep2BufferO;                                     //端点2数据传输地址
UEP3_DMA = Ep3BufferI;                                     //端点2数据传输地址
UEP2_3_MOD |= (bUEP3_TX_EN | bUEP2_RX_EN);                 //端点2发送接收使能
UEP2_3_MOD &= ~(bUEP2_BUF_MOD | bUEP3_BUF_MOD);            //端点2收发各64字节缓冲区
UEP2_CTRL = bUEP_AUTO_TOG | UEP_T_RES_NAK | UEP_R_RES_ACK; //端点2自动翻转同步标志位,IN事务返回NAK,OUT返回ACK
UEP3_CTRL = bUEP_AUTO_TOG | UEP_T_RES_NAK | UEP_R_RES_NAK; //端点3自动翻转同步标志位,IN事务返回NAK,OUT返回NACK

如果没有对手册对错的话 加上端点1的配置 按照现在实际的全单缓配置可以省下来512字节的外部ram
另外好像是配置的了端点4 但是实际的端点初始化的时候却禁止了 这块我还在检查

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn