FreeCalypso > hg > freecalypso-sw
view loadtools/labaud.c @ 867:c4da570dca83
int_osx_receive_prim() in gsm-fw/gpf/osx/osx.c: there was an error in the
reconstruction of this function from disassembly in the logic that implements
special handling for MPHC_RXLEV_REQ messages.
The code is now fixed to properly match what the binary object version does;
with this fix the firmware now performs the power measurement phase correctly
and the initial network registration succeeds.
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Sat, 16 May 2015 06:34:09 +0000 |
parents | 604648026e9c |
children |
line wrap: on
line source
/* * This module handles the switching of serial baud rates * in coordination with loadagent. */ #include <stdio.h> #include <stdlib.h> #include <termios.h> #include <unistd.h> #include "baudrate.h" extern int target_fd; extern struct baudrate *current_baud_rate; extern struct baudrate *find_baudrate_by_name(); loadagent_switch_baud(newbr) struct baudrate *newbr; { char *argv[3]; static char U = 'U'; printf("Switching loadagent communication to %s baud\n", newbr->name); argv[0] = "baud"; argv[1] = newbr->name; argv[2] = 0; tpinterf_make_cmd(argv); if (tpinterf_send_cmd() < 0) return(-1); switch_baud_rate(newbr); usleep(150000); write(target_fd, &U, 1); return tpinterf_pass_output(1); } cmd_baud(argc, argv) char **argv; { struct baudrate *br; if (argc < 2) { printf("Current baud rate is %s\n", current_baud_rate->name); return(0); } br = find_baudrate_by_name(argv[1]); if (!br) return(-1); /* error msg already printed */ return loadagent_switch_baud(br); }