int main (int argc, char **argv) { #ifdef ANDROID read_default_bdaddr(); #endif if (parse_cmd_line(argc, argv)) { exit(1); } if (uart_fd < 0) { exit(2); } init_uart(); proc_reset(); if (use_baudrate_for_download) { if (termios_baudrate) { proc_baudrate(); } } if (hcdfile_fd > 0) { proc_patchram(); } if (termios_baudrate) { proc_baudrate(); } if (bdaddr_flag) { proc_bdaddr(); } if (enable_lpm) { proc_enable_lpm(); } if (scopcm) { proc_scopcm(); } if (i2s) { proc_i2s(); } if (enable_hci) { proc_enable_hci(); while (1) { sleep(UINT_MAX); } } exit(0); }
static ft_proc_t* proc_alloc(void) { ft_proc_t* proc; proc = malloc(sizeof(ft_proc_t)); if (proc) proc_reset(proc); return proc; }
int main (int argc, char **argv) { if ((uart_fd = open("/dev/ttyS1", O_RDWR | O_NOCTTY)) <0) { fprintf(stderr, "port /dev/ttyS1 could not be opened, error %d\n", errno); exit(1); } //set_bluetooth_power(1); init_uart(); proc_reset(); exit(0); }
void proc_patchram() { int len; hci_send_cmd(hci_download_minidriver, sizeof(hci_download_minidriver)); read_event(uart_fd, buffer); if (!no2bytes) { read(uart_fd, &buffer[0], 2); } if (tosleep) { usleep(tosleep); } while (read(hcdfile_fd, &buffer[1], 3)) { buffer[0] = 0x01; len = buffer[3]; read(hcdfile_fd, &buffer[4], len); hci_send_cmd(buffer, len + 4); read_event(uart_fd, buffer); } if (use_baudrate_for_download) { cfsetospeed(&termios, B115200); cfsetispeed(&termios, B115200); tcsetattr(uart_fd, TCSANOW, &termios); } proc_reset(); }