...
On the host, activate the Cortex-M cross-development environment:
Code Block bash-3.2$$ . ./ACTIVATE.sh -bash-3.2$$
Create a simple "Hello, world" C application:
Code Block [host] $ cd /tmp [host] $ vi test.c #include <stdio.h> int main(int argc, char *argv[]) { printf("Hello, i.MX RTxxxx\n"); return 0; }
Build the application for the Cortex-M target:
Code Block [host] $ ${CROSS_COMPILE_APPS}gcc -o test test.c
If you have no
uuencode
installed in your system, then install it:Code Block [host] $ sudo apt-get install sharutils
Encode the application binary into an ASCII-only presentation so that the file can be transmitted over a serial line:
Code Block [host] $ uuencode test < test > test.encoded
The
uudecode
application on the target (in order to convert the ASCII-only file back into the application binary) is provided withbusybox
by default in therootfs
project.On the host, make sure that the serial port you use for the target console is configured for 115200 bps:
Code Block [host] $ stty -F /dev/ttyACM0 115200 raw -echo -echoe -echoctl -echok
If you have no
picocom
installed in your system, the install it:Code Block [host] $ sudo apt-get install picocom
Start the target console:
Code Block [host] $ picocom -b 115200 /dev/ttyACM0
From the target, run the following to read a file from the serial console:
Code Block ~ # cat > /test.encoded < /dev/ttyLP0
On the host, exit the target console (Ctrl-A and then Ctrl-X in
picocom
).On the host, send the encoded ASCII file to the serial port used for the target console:
Code Block [host] $ cat /tmp/test.encoded > /dev/ttyACM0
When the transfer command finishes, enter the target console again:
Code Block [host] $ picocom -b 115200 /dev/ttyACM0
Type Ctrl-C to interrupt the
cat
command:Code Block ^C / #
Run uudecode to convert the ASCII file back to the binary file:
Code Block ~ # uudecode /test.encoded -o /test
Change mode to allow running the application binary:
Code Block ~ # chmod a+x /test
Finally, run the application:
Code Block ~ # /test Hello, i.MX RTxxxx ~ #