Keil Logo

Serial Ports

The on-chip serial port is controlled with: S0TIME, S0IN, and S0OUT. S0IN and S0OUT represent the serial input and output streams on the CPU. S0TIME lets you specify whether the serial port timing instantaneous (STIME = 0) or the serial port timing is relative to the specified baudrate (SxTIME = 1). When S0TIME is 1, serial data displayed in the Serial window is output at the specified baudrate. When S0TIME is 0, serial data is displayed in the Serial window much more quickly.

Simulating serial input is just as easy as simulating digital input. Suppose you have an external serial device that inputs specific data periodically (every second). You can create a signal function that feeds the data into the CPU's serial port.

signal void serial_input (void) {
  while (1) {                                /* repeat forever */
    twatch (CLOCK);                          /* Delay for 1 second */

   S0IN = 'A';                               /* Send first character */
   twatch (CLOCK / 900);                     /* Delay for 1 character time */
                                             /* 900 is good for 9600 baud */
   S0IN = 'B';                               /* Send next character */
   twatch (CLOCK / 900);
   S0IN = 'C';                               /* Send final character */
  }                                          /* repeat */

When this signal function runs, it delays for 1 second, inputs 'A', 'B', and 'C' into the serial input line and repeats.

Serial output is simulated in a similar fashion using a user or signal function and a write access breakpoint as described above.

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.