#include "types.h" #include "t124.h" typedef void (*ep1_x_imm_t)(void *buffer, u32 size, u32 *num_xfer); ep1_x_imm_t usb_read = (ep1_x_imm_t) ( BOOTROM_EP1_OUT_READ_IMM | 1 ); ep1_x_imm_t usb_write = (ep1_x_imm_t) ( BOOTROM_EP1_IN_WRITE_IMM | 1 ); // int (*usb_write)(void*addr, uint32_t size, void *return_addr) = (void*)BOOTROM_EP1_IN_WRITE_IMM; // int (*usb_read)(int, int, int) = (void*)BOOTROM_EP1_OUT_READ_IMM; int mystrlen(char *data) { int i=0; while(1) { if(data[i++] == '\0'){ break; } } return i-1; } #define usb_log(msg, error) usb_write(msg, mystrlen(msg), error); __attribute__((section(".init"))) void payload_main() { uint32_t error_code; uint32_t data = 0xdeadbeef; u32 num_xfer; u32 to_send; u8 *buffer = (u8*)0x40020000; uint32_t test = 1; while (1) { usb_write(&test, sizeof(test), &num_xfer ); test += 1; } }