Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - neil

Pages: [1] 2 3 ... 30
1
NXPTM M522XX, KINETIS and i.MX RT / Re: Compiler Issue
« on: January 22, 2024, 07:17:56 PM »
Hi Mark,
  My version doesnt have a CW10 project, would it be possible to get a copy of this?

Best Regards
Neil

2
NXPTM M522XX, KINETIS and i.MX RT / Re: Compiler Issue
« on: January 14, 2024, 09:34:08 PM »
Hi Mark,
  Because of the issues, I thought maybe better to upgrade, so I have downloaded Codewarrior v10.5 and V11.  Looking at the page https://www.utasker.com/kinetis/compilers.html#CW10  it mentions how to convert a current application (V7.1) to V10.x . Would this work for V11, or V10.5?

Looking at a previous post a while back, https://www.utasker.com/forum/index.php?topic=2042.0  , I started to try the upgrade, but got V7.1 to work. But now I am thinking of doing the upgrade.

I got stuck as I dont have  folders ".settings", ".cproject" etc.  as mentioned in the first paragraph of the conversion link above. And also I dont have a "project_settings" folder, or any "."folder.   These things are mentioned before starting codewarrior 10.0.

Many Thanks
Neil

3
NXPTM M522XX, KINETIS and i.MX RT / Compiler Issue
« on: January 14, 2024, 01:29:59 PM »
Hi
  I understand this isnt a processor issue, but wonder if someone else has come across this before , and hopefully found a fix.

I am using Codewarrior 7.1 on Windows 10, and been working well for a few years now. But for some reason during debugging it doesnt display the variable values correctly. For some reason it simply repeats the variable name, see the attached.

Best Regards
Neil

4
NXPTM M522XX, KINETIS and i.MX RT / UDP socket buffer size
« on: November 10, 2023, 02:56:45 PM »
Hi Mark
  Hope you are keeping well...

Where do I find max buffer size of a received UDP packet?  My application can transmit 1k of data and want to make sure the buffer is large enough to hold this

Best Regards
Neil

5
NXPTM M522XX, KINETIS and i.MX RT / Closing and reopening handles
« on: June 21, 2023, 10:51:30 AM »
Hi Mark,
  Hope you are keeping well..

I call the below to open a Uart and pulse input channels. If I want to call the routine again, do I have to close any handles first? If so how is this done?

Best Regards
Neil

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

TTYTABLE tGSMInterfaceParameters;                                       // table for passing information to driver
QUEUE_HANDLE fnSetGSMSerialMode(unsigned char ucDriverMode)//
{
    GPTIMER_SETUP gptimer_setup;                                         // interrupt configuration parameters
    tGSMInterfaceParameters.Channel = 1;                            // set UART channel for serial use
    tGSMInterfaceParameters.ucSpeed = SERIAL_BAUD_115200; // baud rate
    tGSMInterfaceParameters.Rx_tx_sizes.RxQueueSize = 400;       // input buffer size
    tGSMInterfaceParameters.Rx_tx_sizes.TxQueueSize = 800;       // output buffer size
//    tGSMInterfaceParameters.Rx_tx_sizes.TxQueueSize = 3000;       // output buffer size Large size as may be used with diagnostics
   
    tGSMInterfaceParameters.Task_to_wake = TASK_GSM;                        // wake self when messages have been received
    tGSMInterfaceParameters.Config = (CHAR_8 | NO_PARITY | ONE_STOP | CHAR_MODE | RTS_CTS |  INFORM_ON_FRAME_TRANSMISSION);
 //   tGSMInterfaceParameters.ucDMAConfig = 0; // NO DMA for UART1

    gptimer_setup.int_type = GPT_TIMER_INTERRUPT;
    gptimer_setup.int_handler = DCDPulse_int;
    gptimer_setup.channel = 1;                                           // general purpose timer channel 1
    gptimer_setup.int_priority = GPTIMER0_INTERRUPT_PRIORITY;            // define interrupt priority
    gptimer_setup.mode = GPT_CAPTURE_RISING_EDGE; // set up capture mode and define the timer clock
                                                                     
    gptimer_setup.usCaptureCount = 0;                         // request this many capture values to be recorded before calling our interrupt
    gptimer_setup.capture_list = 0;                          // the capture list for saving to
   fnConfigureInterrupt((void *)&gptimer_setup);                        // enter interrupt for DMA timer test
    if ((GSMPortID = fnOpen( TYPE_TTY, ucDriverMode, &tGSMInterfaceParameters )) != 0)
     { // open or change the channel with defined configurations (initially inactive)
        fnDriver( GSMPortID, ( TX_ON | RX_ON ), 0 );                  // enable rx and tx
      if (tGSMInterfaceParameters.Config & RTS_CTS) {                   //

            fnDriver( GSMPortID, (MODIFY_INTERRUPT | ENABLE_CTS_CHANGE), 0 ); // activate CTS interrupt when working with HW flow control (this returns also the present control line states)
            fnDriver( GSMPortID, (MODIFY_CONTROL | SET_RTS), 0 );     // activate RTS line when working with HW flow control

        }
     }
         
    return GSMPortID;     
}

6
Hi Mark,
   Many thanks for the reply.

Best Regards
Neil

7
Hi Mark
  you have

"The only thing that changes over time with UDP is related to ARP table entries. If the destination address is in the ARP table transmissions take place immediately and if not ARP first has to resolve it; the cal back informs that the content should be repeated once it has resolved. With time ARP entries time out and this needs to be repeated."

Would this involve:
fnDeleteArp();
fnAddARP(ip, mac, ARP_FIXED_IP);

I would know the ip address of the device I am talking to, but is there a way of detecting the mac address after the first connection it makes to the UDP server I have setup in utasker?


Best Regards
Neil

8
HI Mark,
  Many thanks for your reply.

Best Regards
Neil

9
Hi Mark,
  I have 1 socket setup for UDP server and client, is this okay to do, or am I better having 1 socket as a server and one as sending?   My sequences is as follows:

Create 1 UDP socket and setup a listening routine.

Every 10 seconds:

1. Send a request to the device.
2. It then replies with a result.

Very occasionally the device I am talking to stops responding, even though the commands are sent. If I switch on/off my board it all works again. The way around this is I call "fnReleaseUDP_socket" , then re-initialise it again, and all goes well. But now after a good while I get a hardware fault. I thought it might be a memory issue but cant find anything.

So I am not sure if I have to create a socket for sending, and one for receiving? And if releasing and re-initialising the socket can cause an issue?

Best Regards
Neil

10
NXPTM M522XX, KINETIS and i.MX RT / Re: UDP and TCP server
« on: March 16, 2022, 04:16:15 PM »
Hi Mark,
  Many thanks for the reply. Is there any documentation on this?

Best Regards
Neil

11
NXPTM M522XX, KINETIS and i.MX RT / UDP and TCP server
« on: March 16, 2022, 03:52:46 PM »
HI Mark,
  Hope you are keeping well  :)

In my project I have to include a UDP and TCP server . I use the TCP client often, but never as a server. Is there any examples for both UDP and TCP server ?

Best Regards

Neil

12
utFAT / Re: Latest Version
« on: January 02, 2022, 02:10:45 PM »
Hi Mark,
  Many thanks  :)

Best Regrards
Neil

13
utFAT / Latest Version
« on: January 01, 2022, 03:14:20 PM »
Hi Mark,
  Happy new year... And hope 2022 is good :)

  looking at the version of my ufat I see its:  11.07.2014 utFAT2.0   . Is this the latest version? If not how can I update this?

Best Regards
Neil


14
Hi Mark
  For some reason the processor and external ram was faulty.  Changed both and cleared the issue.

I made sure the #define RND_HW_SUPPORT   was enabled.

Many thanks
Neil

15
Hi Mark
   I have a new board with a MCF52259 processor (same as I have used for years), but this one is crashing at he below function (I have removed here the other instructions and left the one causing the issue.:

extern void fnInitialiseRND(unsigned short *usSeedValue)                 // {84}
{
    if ((*usSeedValue = *ptrSeed) == 0) {                                // we hope that the content of the random seed is random after a power up
        *usSeedValue = 0x127b;                                           // we must not set a zero - so we set a fixed value
    }                                                                    // after a reset it should be well random since it will contain the value at the reset time

}

As soon as I go into the line:    if ((*usSeedValue = *ptrSeed) == 0) {   

I get an undefined interupt:

static __interrupt__ void undef_int(void)
{
    while (1) {}                                                         // wait here and analyse with debugger....
}

Any pointers what can cause this?

Best Regards
Neil

Pages: [1] 2 3 ... 30