void main(void) { unsigned long int i; char str[18] ={0,}; exp_memory_init(); sci_init(SCI_NO_1, BitRate_type_br9600); sci_write_str(SCI_NO_1, "This is DRAM test!!\r\n"); // 外部RAM確認 *(short*)0x410000 = 0x5678; sci_write(SCI_NO_1, *(char*)(0x410000 + 0)); sci_write(SCI_NO_1, *(char*)(0x410000 + 1)); for(i = 0; i < 0x1FFFFF; i++) { *(char*)(0x400000 + i) = i % 0xFF; } for(i = 0; i < 0x1FFFFF; i++) { sci_write(SCI_NO_1, *(char*)(0x400000 + i)); } while(1); }
void main_vec(softvec_type_t type, unsigned long sp) { static char buf[32]; static int i = 0; static char* entry_point; static void (*start)(void); // char str[32] = {0,}; // 受信 buf[i] = sci_read_byte_intr(SCI_NO_1); sci_write(SCI_NO_1, buf[i]); // スイッチ if(buf[i] == 0x0d) { buf[i] = '\0'; if(!strncmp(buf, "dump", 4)) { // getstring(str); // asciitobin(str, 4); for (i = 0; i < 128; i++) sci_write(SCI_NO_1, *((char*)0xffc520 + i)); } else if(!strncmp(buf, "load", 4)) { sci_write_str(SCI_NO_1, " started!! XMODEM...\n\r"); xmodem_start((char*)&buf_start); sci_write_str(SCI_NO_1, " finish!! XMODEM\n\r"); sci_write_str(SCI_NO_1, " Transfer is Completed...\n\r"); } else if(!strncmp(buf, "devlop", 6)) { // RAM展開 sci_write_str(SCI_NO_1, " started!! devloping...\n\r"); entry_point = elf_develop((char*) &buf_start); start = (void(*)(void)) entry_point; sci_write_str(SCI_NO_1, " finish!! devloped...\n\r"); } else if(!strncmp(buf, "start", 5)) { // 開始 start(); } i = 0; sci_write_str(SCI_NO_1, "\n\rPINoC Console>_ "); return; } i++; }
void sci_puts(char *str) { while(*str) { sci_write(*str++); } }
void main(void) { char c; sci_init(SCI_NO_1, BitRate_type_br9600); sci_write(SCI_NO_1, 'A'); sci_write_str(SCI_NO_1,"Hello world!!\n"); while(1) { c = sci_read_byte(SCI_NO_1); sci_write(SCI_NO_1, c); } }
int sci_puts(const char *data) { const char *p; for (p = data; *p != '\0'; ++p) { ; } return sci_write(data, p - data); }
void sci_writen(char *buff, unsigned int n) { unsigned int i; for(i = 0; i < n; ++i) { sci_write(buff[i]); } }
int16_t parse_cmd_ustream_test(char *cmd, char *output, uint16_t len) { cs_low(); sci_write(0x00, (1<<SM_TESTS)|(1<<SM_SDISHARE)|(1<<SM_STREAM)|(1<<SM_SDINEW)); cs_high(); vs1053_sinetest(120); return ECMD_FINAL_OK; }
UINT32 com_send(unsigned char * buffer, UINT32 nLen) { UINT32 i = 0; for(i = 0; i < nLen; i++) { sci_write(boot_uart_id, buffer[i]); } return i ; }
static void timer_handler(void) { static int msec_counter = 0; static int sec_counter = 0; if (++msec_counter >= 1000) { char number_text; msec_counter = 0; ++sec_counter; if (sec_counter >= 10) { return; } number_text = '0' + sec_counter; sci_write(&number_text, 1); sci_write("\r\n", 2); } }
void sci_write_str(SCI_NO no,const char* _Str) { volatile struct SCI* sci = regs[no].sci; while(*_Str) { sci_write(no, *_Str++); } // バッファの中身が全て送信されるまで待機 while(!sci->SSR.BIT.TEND); }
UINT32 api_com_monitor() { UINT8 i = 0; UINT8 ch = 0xff; UINT8 *comtest_command = "comtest"; INT32 comtest_command_len = STRLEN(comtest_command) - 1; UINT8 sync = 0; UINT32 timeout = 1000; OSAL_T_CTSK t_ctsk; if (COM_MONITOR_CHECK_STBID &g_com_detect_flag) { i = 0; while(sci_read_tm(SCI_FOR_RS232, &ch, timeout) == SUCCESS) { if((i <= comtest_command_len) && (comtest_command[i] == ch)) { timeout = 1000 * 100; sci_write(SCI_FOR_RS232, ch); i++; if (i > comtest_command_len) /* Is a comtest command string, wait for serial id trans */ { t_ctsk.stksz = 0x2000; t_ctsk.quantum = 10; t_ctsk.itskpri = OSAL_PRI_NORMAL; t_ctsk.name[0] = 'A'; t_ctsk.name[1] = 'S'; t_ctsk.name[2] = 'H'; t_ctsk.task = (FP)lib_ash_shell; if(g_com_ash_id != OSAL_INVALID_ID) { osal_task_delete(g_com_ash_id); } g_com_ash_id = osal_task_create(&t_ctsk); if (g_com_ash_id == OSAL_INVALID_ID) return 1; api_set_com_check_flag(COM_MONITOR_CHECK_PAUSE); break; } } else break; } } return 0; }
int main(void) { const char message[] = "hello.\r\n"; imask_initialize(); clock_initialize(); sci_initialize(INTERRUPT_PRIORITY_COMMUNICATION, 38400); set_imask_exr(0); sci_write(message, sizeof(message) - 1); sci_puts("start\r\n"); while (1) { ; } }
int main(void) { imask_initialize(); clock_initialize(); sci_initialize(INTERRUPT_PRIORITY_COMMUNICATION, 38400); timer_initialize(INTERRUPT_PRIORITY_TIMER); set_imask_exr(0); timer_set_interval_function(timer_handler); timer_start(); sci_write("0\r\n", 3); while (1) { ; } }
void getstring(char* buf) { int i; int cnt = 0; for (i = 0; i < 30; i++) { buf[cnt] = tolower(sci_read_byte(SCI_NO_1)); sci_write(SCI_NO_1, buf[cnt]); if (buf[cnt] == 0x0d) { buf[cnt] = 0x00; break; } cnt++; } }
UINT32 com_send2back_tm(unsigned char * buffer, UINT32 nLen, UINT32 nTimeOut) { UINT32 i; INT8 tmp; for(i=0;i<nLen;i++) { sci_write(p2p_uart_id, buffer[i]); if(sci_read_tm(p2p_uart_id, &tmp, nTimeOut * 1000)!=SUCCESS) { return !SUCCESS; } if(tmp!= buffer[i]) { return !SUCCESS; } } return SUCCESS; }
/******************************************** TransmitTask - pends on the Transmit flag, when flag is posted transmitts message typed. uses: sci_write, sci_open, MessageCheckSum(); *********************************************/ static void TransmitTask(void *p_arg) { INT8U err; INT8U var = 'M'; INT8U sourcea = '1'; INT8U sourceb = '1'; INT8U sourcec = '7'; INT8U send_message[16]; INT8U counter = 0x00; INT8U checksum[2]; (void)p_arg; sci_open(); FOREVER() { OSSemPend(TransmitFlag, 0, &err); DBUG_PORT |= PP1; sci_write(var); sci_write(sourcea); sci_write(sourceb); sci_write(sourcec); GetMessage(&send_message); while(counter != 0x10) { sci_write(send_message[counter]); counter++; } counter = 0x00; MessageCheckSum(&checksum,sourcea,sourceb,sourcec); sci_write(checksum[0]); sci_write(checksum[1]); DBUG_PORT &= ~PP1; } }
void charput(char c) { sci_write(SCI_NO_1, c); }