Skip to content
Snippets Groups Projects
Commit 8198a982 authored by Sergi Hernandez's avatar Sergi Hernandez
Browse files

Added the command to set the application mode before executing the go command.

parent e1d736c6
No related branches found
No related tags found
No related merge requests found
...@@ -16,6 +16,7 @@ const unsigned char bootloader_load='l'; ...@@ -16,6 +16,7 @@ const unsigned char bootloader_load='l';
const unsigned char bootloader_go='g'; const unsigned char bootloader_go='g';
const unsigned char bootloader_dump='d'; const unsigned char bootloader_dump='d';
const unsigned char bootloader_clear='c'; const unsigned char bootloader_clear='c';
const unsigned char bootloader_app='a';
typedef enum {original_protocol=0,new_protocol=1} protocol_t; typedef enum {original_protocol=0,new_protocol=1} protocol_t;
...@@ -133,7 +134,7 @@ int main(int argc,char *argv[]) ...@@ -133,7 +134,7 @@ int main(int argc,char *argv[])
{ {
try{ try{
if((num_data=serial_port.get_num_data()==0)) if((num_data=serial_port.get_num_data()==0))
event_server->wait_all(events,100); event_server->wait_all(events,20);
num_data=serial_port.get_num_data(); num_data=serial_port.get_num_data();
serial_port.read((unsigned char *)bootloader_data,num_data); serial_port.read((unsigned char *)bootloader_data,num_data);
bootloader_data[num_data]='\0'; bootloader_data[num_data]='\0';
...@@ -357,6 +358,25 @@ int main(int argc,char *argv[]) ...@@ -357,6 +358,25 @@ int main(int argc,char *argv[])
} }
} }
} }
// go to application mode
serial_port.write((unsigned char *)&bootloader_app,1);
if(protocol==new_protocol)
serial_port.write((unsigned char *)&bootloader_ack,1);
end=false;
while(!end)
{
try{
event_server->wait_all(events,300);
// there has been an error
num_data=serial_port.get_num_data();
serial_port.read(bootloader_data,num_data);
bootloader_data[num_data]='\0';
printf("%s",bootloader_data);
}catch(CEventTimeoutException &e){
// no error to report
end=true;
}
}
// start the loaded program // start the loaded program
serial_port.write((unsigned char *)&bootloader_go,1); serial_port.write((unsigned char *)&bootloader_go,1);
if(protocol==new_protocol) if(protocol==new_protocol)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment