From 79878a76c2ba48c126bda16ee8e159f9e89d7632 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Fri, 27 May 2022 09:04:08 +0200 Subject: [PATCH] More fixes --- src/ccid/ccid2040.c | 10 ++-- src/usb/tusb_config.h | 119 ------------------------------------------ 2 files changed, 5 insertions(+), 124 deletions(-) delete mode 100644 src/usb/tusb_config.h diff --git a/src/ccid/ccid2040.c b/src/ccid/ccid2040.c index a0a2866..87eacd0 100644 --- a/src/ccid/ccid2040.c +++ b/src/ccid/ccid2040.c @@ -282,9 +282,9 @@ static int usb_event_handle() { if (apdu.ne == 0) apdu.ne = 256; } - else if (ccid_header->dwLength == 9) { + else if (ccid_header->dwLength == 7) { apdu.nc = 0; - apdu.ne = (apdu.header[8] << 8) | apdu.header[9]; + apdu.ne = (apdu.header[5] << 8) | apdu.header[6]; if (apdu.ne == 0) apdu.ne = 65536; } @@ -309,9 +309,9 @@ static int usb_event_handle() { } printf("apdu.nc %d, apdu.ne %d\r\n",apdu.nc,apdu.ne); if (apdu.header[1] == 0xc0) { - printf("apdu.ne %d, apdu.rlen %d\r\n",apdu.ne,apdu.rlen); + printf("apdu.ne %d, apdu.rlen %d, bk %x\r\n",apdu.ne,apdu.rlen,rdata_bk); ccid_response = rdata_gr-10; - *rdata_gr = rdata_bk; + *(uint16_t *)rdata_gr = rdata_bk; if (apdu.rlen <= apdu.ne) { ccid_response->bMessageType = CCID_DATA_BLOCK_RET; ccid_response->dwLength = apdu.rlen+2; @@ -460,7 +460,7 @@ void ccid_task(void) { ccid_response->abRFU0 = ccid_status; ccid_response->abRFU1 = 0; rdata_gr = apdu.rdata+apdu.ne; - rdata_bk = *rdata_gr; + rdata_bk = *(uint16_t *)rdata_gr; rdata_gr[0] = 0x61; if (apdu.rlen - apdu.ne >= 256) rdata_gr[1] = 0; diff --git a/src/usb/tusb_config.h b/src/usb/tusb_config.h deleted file mode 100644 index 69b5534..0000000 --- a/src/usb/tusb_config.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2019 Ha Thach (tinyusb.org) - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - */ - -#ifndef _TUSB_CONFIG_H_ -#define _TUSB_CONFIG_H_ - -#ifdef __cplusplus - extern "C" { -#endif - -//-------------------------------------------------------------------- -// COMMON CONFIGURATION -//-------------------------------------------------------------------- - -// defined by board.mk -#ifndef CFG_TUSB_MCU - #error CFG_TUSB_MCU must be defined -#endif - -// RHPort number used for device can be defined by board.mk, default to port 0 -#ifndef BOARD_DEVICE_RHPORT_NUM - #define BOARD_DEVICE_RHPORT_NUM 0 -#endif - -// RHPort max operational speed can defined by board.mk -// Default to Highspeed for MCU with internal HighSpeed PHY (can be port specific), otherwise FullSpeed -#ifndef BOARD_DEVICE_RHPORT_SPEED - #if (CFG_TUSB_MCU == OPT_MCU_LPC18XX || CFG_TUSB_MCU == OPT_MCU_LPC43XX || CFG_TUSB_MCU == OPT_MCU_MIMXRT10XX || \ - CFG_TUSB_MCU == OPT_MCU_NUC505 || CFG_TUSB_MCU == OPT_MCU_CXD56 || CFG_TUSB_MCU == OPT_MCU_SAMX7X) - #define BOARD_DEVICE_RHPORT_SPEED OPT_MODE_HIGH_SPEED - #else - #define BOARD_DEVICE_RHPORT_SPEED OPT_MODE_FULL_SPEED - #endif -#endif - -// Device mode with rhport and speed defined by board.mk -#if BOARD_DEVICE_RHPORT_NUM == 0 - #define CFG_TUSB_RHPORT0_MODE (OPT_MODE_DEVICE | BOARD_DEVICE_RHPORT_SPEED) -#elif BOARD_DEVICE_RHPORT_NUM == 1 - #define CFG_TUSB_RHPORT1_MODE (OPT_MODE_DEVICE | BOARD_DEVICE_RHPORT_SPEED) -#else - #error "Incorrect RHPort configuration" -#endif - -#ifndef CFG_TUSB_OS -#define CFG_TUSB_OS OPT_OS_PICO -#endif - -// CFG_TUSB_DEBUG is defined by compiler in DEBUG build -// #define CFG_TUSB_DEBUG 0 - -/* USB DMA on some MCUs can only access a specific SRAM region with restriction on alignment. - * Tinyusb use follows macros to declare transferring memory so that they can be put - * into those specific section. - * e.g - * - CFG_TUSB_MEM SECTION : __attribute__ (( section(".usb_ram") )) - * - CFG_TUSB_MEM_ALIGN : __attribute__ ((aligned(4))) - */ -#ifndef CFG_TUSB_MEM_SECTION -#define CFG_TUSB_MEM_SECTION -#endif - -#ifndef CFG_TUSB_MEM_ALIGN -#define CFG_TUSB_MEM_ALIGN __attribute__ ((aligned(4))) -#endif - -//-------------------------------------------------------------------- -// DEVICE CONFIGURATION -//-------------------------------------------------------------------- - -#ifndef CFG_TUD_ENDPOINT0_SIZE -#define CFG_TUD_ENDPOINT0_SIZE 64 -#endif - -//------------- CLASS -------------// -#define CFG_TUD_HID 0 -#define CFG_TUD_CDC 0 -#define CFG_TUD_MSC 0 -#define CFG_TUD_MIDI 0 -#define CFG_TUD_VENDOR 1 - -// HID buffer size Should be sufficient to hold ID (if any) + Data -#define CFG_TUD_HID_EP_BUFSIZE 16 - -#define CFG_TUD_VENDOR_RX_BUFSIZE (TUD_OPT_HIGH_SPEED ? 512 : 64) -#define CFG_TUD_VENDOR_TX_BUFSIZE (TUD_OPT_HIGH_SPEED ? 512 : 64) - -#include "pico/types.h" - -static inline uint16_t tu_u32_high16(uint32_t ui32) { return (uint16_t) (ui32 >> 16); } -static inline uint16_t tu_u32_low16 (uint32_t ui32) { return (uint16_t) (ui32 & 0x0000ffffu); } - -#ifdef __cplusplus - } -#endif - -#endif /* _TUSB_CONFIG_H_ */