ts-7000
[Top] [All Lists]

Re: [ts-7000] Re: Write to memory without mmap()?

To:
Subject: Re: [ts-7000] Re: Write to memory without mmap()?
From: Jim Jackson <>
Date: Mon, 19 Jul 2010 18:18:27 +0100 (BST)


On Mon, 19 Jul 2010, Simon wrote:

> Thanks WouterS and Jim Jackson. Now I understand a little better what's 
> going on in there.
>
> My problem is that I'm trying to do some very fast communications through 
> the SPI port and I need to do some flag management through the DIO ports. 
> I've done some tests and when I go beyond 8 kHZ it seems that the kernel 
> gets in the way and creates small delays in the process.

The kernel is getting in the way,  but not in the way you seem to think.
Once mmap has given you an address, then when you use that address you are 
speaking direct to the hardware! But, you are in user space, the kernel can 
stop your process and let something else run at any time.

If you need more guarantees about timing etc go with the suggestions of 
writing a kernel driver. There is a kernel driver for doing i2c on the
DIO pins on a ts72xx at

http://bioacoustics.cse.unsw.edu.au/archives/html/ts-7000/2006-07/msg00043.html
and
http://tisnix.dommel.be/ts-7260/

It might provide some useful reading and be an example for you.

>
> I was trying to get past that by communicating straight to the hardware. 
> I've read about something called 'nice' to increase the priority of my 
> program but I don't know how to use it for the TS boards. Can someone 
> point me to documentation or tell me how it's done?
>
> Thank you very much for your help!
>
> --- In  Jim Jackson <> wrote:
>>
>>
>>
>>
>> On Thu, 15 Jul 2010, Simon wrote:
>>
>>> Hi, I've been using the peekpoke instructions as inline assembly and they
>>> work perfectly. However, I was wondering if there's a way, using inline
>>> assembly, to use these functions without mmap'ing. Maybe set some flags
>>> that'd let me control the memory locations directly?
>>>
>>> I just want to be able to communicate with the GPIO ports directly
>>> instead of having to go through virtual memory mapping. Is there a way to
>>> do this?
>>
>> Not without having to go through virtual memory mapping.
>> You can do it without using peekpoke functions.
>> Once you have addresses mmap'ed, or addresses calculated from mmap'ed base
>> addresses, you can use them directly. There is example code around.
>> If stuck check out the ts7200.c file in any of my programs.
>>
>>
>> cheers
>> Jim
>> ----------------------------------------------------------------------------
>> HomePage:    http://www.comp.leeds.ac.uk/jj
>> TS7200 Page: http://www.comp.leeds.ac.uk/jj/linux/arm-sbc.html
>>
>
>
>


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/ts-7000/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/ts-7000/join
    (Yahoo! ID required)

<*> To change settings via email:
     
    

<*> To unsubscribe from this group, send an email to:
    

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU