Example of reading data with PRUSS Uart.

Full code at:  https://github.com/jstampfl/Pruuart

/ pu.p V1

 // Use PRUSS uart to read data from ADAFRUIT Ultimate GPS
// reads data to nl, put in buffer and signal linux side.
.setcallreg r2.w0 // Going to use r31 for interrupt
.origin 0
.entrypoint TB
TB:
 ldi r20,0
 ldi r21,0
 ldi r22,0
 mov r0,0
 sbbo r0,r20,r21,4
 zero &r0,64 //zero 16 registers
TB05:
 sbbo r0,r20,r21,64 //zero some of pru0 local memory
 add r21,r21,64 // for linux string functions
 add r22,r22,1
 qbgt TB05,r22,20
TB1:
 ldi r3,4 //Uart divisor =1250 = 0x04E2
 sbco r3,c7,0x24,4 // 9600 at 16x
 ldi r3,0xE2 //in DLL & DLH
 sbco r3,c7,0x20,4

 ldi r3,0x3 //LCR = 3, 8 none & 1
 sbco r3,c7,0x0C,4 //

 mov r3,0x6001 //Power &
 sbco r3,c7,0x30,4 // = tx on, rx on & Free ot enable
 ldi r4,0
 ldi r5,0
 ldi r3,0
 ldi r20,0
 ldi r21,0
TB2:
 // r5 points to start of buffer
 // r4 is offset into buffer
 lbco r3,c7,0x14,4 //check LSR for date ready
 qbbc TB2,r3.t0

 lbco r3,c7,0,4 //data is ready, get from RBR
 sbbo r3,r5,r4,1 // and put in buffer
 add r4,r4,1

 qbne TB2,r3,0xA // do until nl received
 sbbo r20,r5,r4,1 // put null to terminate
 ldi r4,0 // zero buffer pointer
 mov r31.b0,35 // signal linux
 jmp TB2
TB9:
 
 mov r31.b0,35
 ldi r4,0xFFFF
 ldi r5,0
TB10:
 add r5,r5,1
 qbgt TB10,r5,r4 

 HALT
 


-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to