passing integer pointers within system

mrtheo wrote on Monday, December 09, 2013:


I’d like to pass integer data from main.c to httdp-cgi.c. In order to do so, I use pointers, or should say “try to use”, since something doesn’t work.

alternate text

Do you see the mistake? I bet it’s pretty obvious, although I can’t spot it.


[edit: typo]

davedoors wrote on Monday, December 09, 2013:

I don’t know about your use of PT_THREADs, but looking at just the single line of C code:

sprintf(txt, “%d”, data_ptr);

Needs to be

sprintf(txt, “%d”, *data_ptr); //<< Dereference pointer

(not a FreeRTOS question)

mrtheo wrote on Monday, December 09, 2013:

Yeah, it is as you said. It’s only that the formatting on this site treats STAR as a text formatting (italics) ignoring the fact I used CODE formatting. Duh.

Pasted the code as an image, hopefully this would work.

davedoors wrote on Monday, December 09, 2013:

Try putting the code inside pre /pre tags too.

The problem is probably related to your use of PTHREADS. I’ve had a look at some examples and they seem to have variables declared outside of PT_BEGIN but all C code inside PT_BEGIN PT_END blocks. In particular I’m looking at static PT_THREAD( handle_script ( struct httpd_state *s ) ) defined in httpd.c. I don’t know what the macros do though so suggest you look them up to ensure you can put code where you have.

mrtheo wrote on Tuesday, December 10, 2013:

It didn’t work, but in the meantime I managed to come up with a solution that doesn’t require mentioned above code, so I’ve progressed. So far it’s doing the job.

Many thanks for taking the interest and trying to help :slight_smile: