Not much to that as well.

CC = arm-linux-gnueabi-gcc
#CC = gcc

all:    serial
serial:     serial.c
    $(CC) -o serial.o serial.c
    arm-linux-gnueabi-strip serial.o

clean:
    rm -f serial.o



On 3/20/12 11:27 AM, "Philippe Gerum" <[email protected]> wrote:

> On 03/20/2012 04:17 PM, Glen Wernersbach wrote:
>> Don't have a full dev enviroment on my embedded arm. Here is the
>> program. Very very basic:
> 
> Ok, actually I was after the link flags used for building this app.
> 
>> -------
>> #include <stdio.h>
>> #include <termios.h>
>> #include <errno.h>
>> #include <fcntl.h>
>> 
>> 
>> /*Artila*/
>> #define MATRIX500_GET_UART_TYPE 0xe001
>> #define MATRIX500_SET_UART_TYPE 0xe002
>> #define MATRIX500_GET_UART_MODE9 0xe003
>> #define MATRIX500_SET_UART_MODE9 0xe004
>> #define MATRIX500_UART_SET_BAUD 0xe006
>> 
>> #define MATRIX500_UART_TYPE_232 232
>> #define MATRIX500_UART_TYPE_422 422
>> #define MATRIX500_UART_TYPE_485 485
>> int
>> main(argc, argv)
>> int argc;
>> char *argv[];
>> {
>> 
>> int fd, ret;
>> struct termios term;
>> char buf[]="XBCDEFHIJKM\0";
>> char buf2[1024] ;
>> 
>> struct termios T_new;
>> 
>> /*open tty port*/
>> fd = open("/dev/ttyS4", O_RDWR | O_NOCTTY | O_NDELAY);
>> if (fd == -1) {
>> printf("open /dev/ttyS0 Failed, errno: %d\r\n", errno);
>> return 0;
>> }
>> 
>> unsigned long interface2=0;
>> ioctl(fd, MATRIX500_GET_UART_TYPE, &interface2) ;
>> printf("set UART type: %d...Failed, errno: %d\r\n", interface2, errno);
>> 
>> /*set serial interface: RS-422*/
>> interface2 = MATRIX500_UART_TYPE_422;
>> if(ioctl(fd, MATRIX500_SET_UART_TYPE, &interface2) != 0) {
>> printf("set UART type: %d...Failed, errno: %d\r\n", interface2, errno);
>> close(fd);
>> return 0;
>> }
>> 
>> unsigned long mode9 = 0;
>> ioctl(fd, MATRIX500_GET_UART_MODE9, &mode9);
>> printf("mode: %d...Failed, errno: %d\r\n", mode9, errno);
>> 
>> mode9=0;
>> 
>> if (ioctl(fd, MATRIX500_SET_UART_MODE9, &mode9)!= 0) {
>> printf("mode: %d...Failed, errno: %d\r\n", mode9, errno);
>> close(fd);
>> return 0;
>> }
>> //it appears this is not getting set but no error.
>> 
>> if(tcgetattr(fd,&term) != 0) {
>> printf("tcgetattr failed\n");
>> 
>> }
>> term.c_cflag = (B921600 | CS8 | CREAD | CLOCAL | HUPCL);
>> term.c_oflag = 0;
>> term.c_iflag = 0;
>> term.c_lflag = 0;
>> if(tcsetattr(fd,TCSANOW,&term) != 0) {
>> printf("tcsetattr failed\n");
>> 
>> }
>> //set baud rate at 4 times 921.6m
>> 
>> unsigned long baud = 921600UL*4;
>> if (ioctl(fd , MATRIX500_UART_SET_BAUD , &baud ) != 0) {
>> printf("set baud: %d...Failed, errno: %d\r\n", baud, errno);
>> close(fd);
>> return 0;
>> }
>> 
>> 
>> close(fd);
>> 
>> 
>> 
>> 
>> 
>> 
>> fd = open("/dev/ttyS4", O_RDWR | O_NOCTTY | O_NDELAY);
>> if (fd == -1) {
>> printf("open /dev/ttyS0 Failed, errno: %d\r\n", errno);
>> return 0;
>> }
>> 
>> 
>> //write the data to my device which echos them back
>> write(fd, buf, sizeof(buf)-1);
>> 
>> //will wait forever here.
>> while(1) {
>> //wait for all 12 characters to received in fifo and then print them to
>> the console
>> 
>> 
>> ret = read(fd, buf2, sizeof(buf)-1);
>> if (ret ==sizeof(buf)-1) {
>> buf2[ret] ='\0' ;
>> printf("got data %s\n", buf2) ;
>> break;
>> 
>> }
>> 
>> 
>> }
>> 
>> 
>> close(fd) ;
>> return 0;
>> }
>> 
>> ------
>> 
>> 
>> 
>> On 3/20/12 11:06 AM, "Philippe Gerum" <[email protected]> wrote:
>> 
>>>  On 03/20/2012 03:53 PM, Glen Wernersbach wrote:
>>>> Ipipe version:
>>>> 1.13-05
>>>> 
>>>> 
>>>> Yes, I do have the co kernel and interrupt pipeline enabled
>>> 
>>>  ldd <your-serial-app> ?
>>> 
>>>> 
>>>> 
>>>> On 3/20/12 10:47 AM, "Philippe Gerum"<[email protected]> wrote:
>>>> 
>>>>> On 03/20/2012 03:34 PM, Glen Wernersbach wrote:
>>>>>> Working on the Strace.
>>>>>> 
>>>>>> I don't have the /proc/xenomai/hal file??
>>>>> 
>>>>> /proc/ipipe/version then.
>>>>> 
>>>>>> 
>>>>>> Again. Nothing I am running is xeno. Its just a xeno patched kernel.
>>>>>> 
>>>>> 
>>>>> Ok, but you do have the Xenomai co-kernel enabled in your kernel build,
>>>>> and the interrupt pipeline is enabled as well, right?
>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On 3/20/12 10:31 AM, "Philippe Gerum"<[email protected]> wrote:
>>>>>> 
>>>>>>> On 03/20/2012 03:17 PM, Philippe Gerum wrote:
>>>>>>>> On 03/20/2012 03:07 PM, Glen Wernersbach wrote:
>>>>>>>>> I went through and disabled everything in xeno except
>>>>>>>>> CONFIG_XENO_OPT_PERVASIVE, did not work. Take that option out and it
>>>>>>>>> works.
>>>>>>>>> 
>>>>>>>>> Take that option out at anytime it works.
>>>>>>>>> 
>>>>>>>>> My program basic writes a few characters a serial port and then
>> reads
>>>>>>>>> them
>>>>>>>>> back in from the same port. I have a loop back cable connected
>> to the
>>>>>>>>> port.
>>>>>>>>> 
>>>>>>>>> It writes the data but waits forever to read them back in
>>>>>>>>> 
>>>>>>>>>> From my tests, it appears that the termois tcsetaddr settings
>> is not
>>>>>>>>>> getting
>>>>>>>>> set when I call it when this option is on.
>>>>>>>> 
>>>>>>>> Can you strace your app when it runs, please?
>>>>>>> 
>>>>>>> The interrupt pipeline release number would help as well
>>>>>>> (/proc/xenomai/hal).
>>>>>>> 
>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On 3/20/12 9:57 AM, "Philippe Gerum"<[email protected]> wrote:
>>>>>>>>> 
>>>>>>>>>> On 03/20/2012 02:48 PM, Glen Wernersbach wrote:
>>>>>>>>>>> I don't think this is it directly.
>>>>>>>>>>> 
>>>>>>>>>>> This program was made on the same kernel prior to patching it with
>>>>>>>>>>> Xeno.
>>>>>>>>>>> 
>>>>>>>>>>> It should still run like any other linux program.
>>>>>>>>>> 
>>>>>>>>>> - what does "program not working" mean in your case? Any errno
>> return
>>>>>>>>>> we
>>>>>>>>>> could interpret? Any strace output?
>>>>>>>>>> 
>>>>>>>>>> - what if you disable CONFIG_XENO_OPT_SKIN_RTDM, leaving
>> PERVASIVE on?
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> On 3/20/12 9:44 AM, "Philippe Gerum"<[email protected]> wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> On 03/20/2012 02:28 PM, Glen Wernersbach wrote:
>>>>>>>>>>>> Hi All,
>>>>>>>>>>>> 
>>>>>>>>>>>> I install Xenomai 2.6.0 on AT91SAM9G20 system and have found
>> that
>>>>>>>>>>>> when
>>>>>>>>>>>> CONFIG_XENO_OPT_PERVASIVE is enabled my standard non real
>> time linux
>>>>>>>>>>>> serial write then read serial program does not work.
>>>>>>>>>>>> 
>>>>>>>>>>>> If I turn off CONFIG_XENO_OPT_PERVASIVE, my serial program does
>>>>>>>>>>>> work.
>>>>>>>>>>>> 
>>>>>>>>>>>> Any ideas why?????
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> A possible explanation would be that your application links
>> with the
>>>>>>>>>>>> Xenomai POSIX lib (libpthread_rt), albeit it should not.
>>>>>>>>>>>> 
>>>>>>>>>>>> With pervasive support disabled, any routing from the overloaded
>>>>>>>>>>>> POSIX
>>>>>>>>>>>> I/O calls to the Xenomai kernel would then fail.
>>>>>>>>>>>> 
>>>>>>>>>>>> If so, you should not link against the Xenomai libs if you
>> need no
>>>>>>>>>>>> -rt
>>>>>>>>>>>> service, or prevent symbol wrapping only for the POSIX I/O
>> calls by
>>>>>>>>>>>> prefixing them by __real_* if you want Xenomai-enabled POSIX
>> services
>>>>>>>>>>>> except the I/O support.
>>>>>>>>>>>> 
>>>>>>>>>>>> See
>>>>>>>>>>>> 
>> http://xenomai.org/index.php/Porting_POSIX_applications_to_Xenomai
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> Also, when you turn CONFIG_XENO_OPT_PERVASIVE you get this
>> error:
>>>>>>>>>>>> CC kernel/xenomai/nucleus/synch.o
>>>>>>>>>>>> kernel/xenomai/nucleus/synch.c: In function
>>>>>>>>>>>> 'xnsynch_release_thread':
>>>>>>>>>>>> kernel/xenomai/nucleus/synch.c:688:3: error: implicit
>> declaration of
>>>>>>>>>>>> function 'xnthread_get_rescnt'
>>>>>>>>>>>> kernel/xenomai/nucleus/synch.c:689:4: error: implicit
>> declaration of
>>>>>>>>>>>> function 'xnshadow_send_sig'
>>>>>>>>>>>> 
>>>>>>>>>>>> I had to go in and make the code for that option befor it always
>>>>>>>>>>>> false.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>> http://git.xenomai.org/?p=xenomai-2.6.git;a=commit;h=41b4f9c0f4bdf061
>>>>>>>>>>>> 07
>>>>>>>>>>>> a7
>>>>>>>>>>>> 88b
>>>>>>>>>>>> 
>>>>>>>>>>>> 76
>>>>>>>>>>>> 2b5cf662b1d4108
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> Glen
>>>>>>>>>>>> --
>>>>>>>>>>>> Glen Wernersbach
>>>>>>>>>>>> President& CTO
>>>>>>>>>>>> 
>>>>>>>>>>>> Jetsoft Development Co.
>>>>>>>>>>>> 629 Old St Rt. 74 ­ Suite 210
>>>>>>>>>>>> Cincinnati, Oh 45244
>>>>>>>>>>>> Custom Programming Web Site: www.jetsoftdev.com
>>>>>>>>>>>> Retail Products Web Site: www.scanhelp.com
>>>>>>>>>>>> Phone: 513-528-6660
>>>>>>>>>>>> Fax: 513-528-3470
>>>>>>>>>>>> Cell 513-240-9929
>>>>>>>>>>>> ----
>>>>>>>>>>>> Partner for Software Technology
>>>>>>>>>>>> Jacobs Automation
>>>>>>>>>>>> 2365 Progress Drive
>>>>>>>>>>>> Hebron, KY 41048
>>>>>>>>>>>> (513) 297-7550
>>>>>>>>>>>> ----
>>>>>>>>>>>> "Support Dyslexia Research"
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Xenomai-help mailing list
>>>>>>>>>>>> [email protected]
>>>>>>>>>>>> https://mail.gna.org/listinfo/xenomai-help
>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
>> --
>> Glen Wernersbach
>> President & CTO
>> 
>> Jetsoft Development Co.
>> 629 Old St Rt. 74 ­ Suite 210
>> Cincinnati, Oh 45244
>> Custom Programming Web Site: www.jetsoftdev.com
>> Retail Products Web Site: www.scanhelp.com
>> Phone: 513-528-6660
>> Fax: 513-528-3470
>> Cell 513-240-9929
>> ----
>> Partner for Software Technology
>> Jacobs Automation
>> 2365 Progress Drive
>> Hebron, KY 41048
>> (513) 297-7550
>> ----
>> "Support Dyslexia Research"
> 

-- 
Glen Wernersbach
President & CTO

Jetsoft Development Co.
629 Old St Rt. 74 ­ Suite 210
Cincinnati, Oh 45244
Custom Programming Web Site: www.jetsoftdev.com
Retail Products Web Site: www.scanhelp.com
Phone:   513-528-6660
Fax: 513-528-3470
Cell 513-240-9929
----
Partner for Software Technology
Jacobs Automation
2365 Progress Drive
Hebron, KY 41048 
(513) 297-7550
----
"Support Dyslexia Research"




_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to