[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Newbie -- Accessing Hardware Ports

A followup to my previous message.

I just had a quick look at your BSP. It seems that the on-board 
registers are attached to PCI_IO space starting at port 0.
Hence, you should be able to access your LEDs using the

outport_byte(0x860, (unsigned char)VALUE)

macro who does the necessary address translation (and IO barrier 
instruction [this is not strictly needed for your LED example]) for you.

-- Till

Don wrote:
> Okay, I have managed to get 'hello world' to work under both psim and 
> on a PPC2A using the ppcn_60x BSP.  Now I am trying to branch out and 
> exercise the board by flashing some LEDs.  Code snip looks something 
> like:
> {
>     volatile unsigned8 *pLED_Control;
>     pLED_Control = (unsigned8 *) 0x00000860;
>     while(1)
>     {
>         *pLED_Control = 0x0F;
>         /**  wait loop  **/
>         *pLED_Control - 0x00;  /** LEDs should blink on & off  **/
>     }
> }
> Unfortunately, nothing happens.  I have also tried reading some board 
> configuration locations (8-bit) and got back values that are no where 
> near what they should be.  
> Now I have concluded the problem is one of the following, but have not 
> been able to find documentation to support or refute the position:
> 1)  RTEMS does not allow direct manipulation of hardware ports via 
> pointers.  (But there has got to be a way around this as the COM port 
> works.)
> 2)  That region of memory is being cached.  In which case I need to 
> figure out how to access the hardware registers to keep that region 
> from being cashed.
> 3)  I have screwed up basic C code.
> 4)  There is a board configuration problem.
> Anybody willing to hazard a guess as to which is the most likely 
> problem?
> Thanks!!
> Don
> www.dynamic-controls-inc.com