Modifying ARM syscalls.c for terminal I/O

Mark Salter msalter@redhat.com
Tue Feb 4 15:15:00 GMT 2003


>>>>> Paul Griffin writes:

> Hi all,

> i'm using gcc3.1.2 built for an arm-elf target running on a i686-pc-cygwin 
> host. At present all I/O is achieved using my own arm assembly routines that 
> make use of the on chip uart. I would now like to be able to use printf!! I 
> do not have the use of Angel or Demon i/o services.

> So far i've gathered that i need to modify libc/sys/arm/syscalls.c in order 
> to achieve this. The approach i'm taking at the moment is to replace the 
> function _swiwrite() with a function that would wrap my own assembly 
> routine. The assembly routine simply bit bangs individual characters down 
> the serial port.

> My question is are my modifcations in the correct area? would anyone have 
> any alternative suggestions to this "wrapper" approach???

> Any suggestions or advice would be very much appreciated!

The right place to do this is in libgloss.
For an example, look at src/libgloss/arm/redboot-syscalls.c, etc.

--Mark



More information about the Newlib mailing list