cmucam3-software (#4) - simple-track-color (#198) - Message List

simple-track-color
 unsolved

Hi...

I manage to this simple-track-color works.. not great but at least the centroid change when i move the object..

here what you need to add.. please let me know if you can make it work better. thanks

/* dont forget to add lib on the top */
#include <cc3.h>
#include <cc3_ilp.h>
#include <cc3_color_track.h>
#include <cc3_color_info.h>
#include <cc3_frame_diff.h>
void simple_track_color(cc3_track_pkt_t *t_pkt);
int main(void) {
  cc3_track_pkt_t t_pkt;
  uint32_t x0, y0, x1, y1;
  cc3_frame_diff_pkt_t fd_pkt;
  cc3_uart_init (0, CC3_UART_RATE_115200,
                 CC3_UART_MODE_8N1, CC3_UART_BINMODE_TEXT);
  cc3_camera_init ();
  cc3_camera_set_resolution(CC3_CAMERA_RESOLUTION_LOW);
  cc3_pixbuf_frame_set_subsample(CC3_SUBSAMPLE_NEAREST, 2, 1);
  // init pixbuf with full size width and height
  x0 = 0;
  x1 = cc3_g_pixbuf_frame.raw_width;
  y0 = 0;
  y1 = cc3_g_pixbuf_frame.raw_height;
  fd_pkt.coi = 1;
  fd_pkt.template_width = 8;
  fd_pkt.template_height = 8;
  t_pkt.track_invert = false;
  t_pkt.noise_filter = 0;
  cc3_pixbuf_frame_set_roi (x0, y0, x1, y1);
  // Load in color tracking parameters
  t_pkt.lower_bound.channel[0] = 164;
  t_pkt.upper_bound.channel[0] = 214;
  t_pkt.lower_bound.channel[1] = 0;
  t_pkt.upper_bound.channel[1] = 41;
  t_pkt.lower_bound.channel[2] = 0;
  t_pkt.upper_bound.channel[2] = 41;
  while(true) {
    simple_track_color(&t_pkt);
    printf("\n centroid=[%d,%d] bounding box=[%d,%d,%d,%d] num pix=[%d] density=[%d] \n",
                    t_pkt.centroid_x, t_pkt.centroid_y,
                    t_pkt.x0,t_pkt.y0,t_pkt.x1,t_pkt.y1,
                    t_pkt.num_pixels, t_pkt.int_density );
   }
}
void simple_track_color(cc3_track_pkt_t *t_pkt)
{
  cc3_image_t img;
  img.channels = 3;
  img.width = cc3_g_pixbuf_frame.width;
  img.height = 1;  // image will hold just 1 row for scanline processing
  img.pix = cc3_malloc_rows (1);
  if (img.pix == NULL) {
    return;
  }
    cc3_pixbuf_load ();
    if (cc3_track_color_scanline_start (t_pkt) != 0) {
      while (cc3_pixbuf_read_rows (img.pix, 1)) {
           // This does the HSV conversion
           // cc3_rgb2hsv_row(img.pix,img.width);
           cc3_track_color_scanline (&img, t_pkt);
          }
        }
    cc3_track_color_scanline_finish (t_pkt);
  free (img.pix);
  return;
}
  • Message #510

    hello,

    I'm lookig for a simple color tracking program for a cmucam 3, do you know where I can find this kind of program ? does it exit or should I program it by myself?

  • Message #511

    hello,

    I'm lookig for a simple color tracking program for a cmucam 3, do you know where I can find this kind of program ? does it exit or should I program it by myself?

  • Message #526

    Nice work!

    Can you please give an example on using Pan and Tilt to make the robot look at the object all the time I will be glad =)

    Thanks!

  • Message #527
    #include <cc3.h>
    #include <cc3_ilp.h>
    #include <cc3_color_track.h>
    #include <cc3_color_info.h>
    #include <cc3_histogram.h>
    #include <cc3_frame_diff.h>
    #include <math.h>
    #include <stdbool.h>
    #include <stdio.h>
    #include <string.h>
    #include <ctype.h>
    #include <stdlib.h>
    #include <cc3_jpg.h>
    #include <cc3_math.h>
    #include <cc3_hsv.h>
    #define SERVO_REVERSE_DIRECTION_PAN
    #define SERVO_REVERSE_DIRECTION_TILT
    #define SERIAL_BAUD_RATE  CC3_UART_RATE_115200
    // Define a jitter guard such that more than SERVO_GUARD pixels are required
    // for the servo to move.
    #define SERVO_MIN 0
    #define SERVO_MID 128
    #define SERVO_MAX 255
    #define DEFAULT_COLOR 0
    #define HSV_COLOR     1
    typedef struct {
      uint8_t pan_step, tilt_step;
      uint8_t pan_range_near, tilt_range_near;
      uint8_t pan_range_far, tilt_range_far;
      int16_t x;
      int16_t y;
      bool y_control;
      bool x_control;
      bool y_report;
      bool x_report;
    } cmucam2_servo_t;
    static const unsigned int MAX_ARGS = 10;
    static const unsigned int MAX_LINE = 128;
    static const char VERSION_BANNER[] = "CMUcam2 v1.00 c6";
    static uint8_t t_pkt_mask;
    static void cmucam2_write_t_packet (cc3_track_pkt_t * pkt, cmucam2_servo_t * servo_settings);
    static void cmucam2_track_color (cc3_track_pkt_t * t_pkt,
                            bool poll_mode,
                            int8_t line_mode, bool auto_led,
                            cmucam2_servo_t * servo_settings,
                            bool buf_mode, uint8_t sw_color_space, bool quiet);
    int main(void) {
      uint8_t sw_color_space;
      bool poll_mode, auto_led, buf_mode;
      int8_t line_mode;
      cc3_track_pkt_t t_pkt;
      cc3_frame_diff_pkt_t fd_pkt;
      cmucam2_servo_t servo_settings;
      uint32_t x0, y0, x1, y1;
      cc3_uart_init (0, CC3_UART_RATE_115200, CC3_UART_MODE_8N1,
                     CC3_UART_BINMODE_TEXT);
      cc3_camera_init ();
      servo_settings.x_control = false;
      servo_settings.y_control = false;
      servo_settings.x_report = false;
      servo_settings.y_report = false;
      servo_settings.x = SERVO_MID;
      servo_settings.y = SERVO_MID;
      servo_settings.pan_range_far = 32;
      servo_settings.pan_range_near = 20;
      servo_settings.pan_step = 20;
      servo_settings.tilt_range_far = 32;
      servo_settings.tilt_range_near = 20;
      servo_settings.tilt_step = 20;
      cc3_camera_set_power_state (true);
      cc3_camera_set_resolution (CC3_CAMERA_RESOLUTION_LOW);
      printf ("%s\r", VERSION_BANNER);
      cc3_gpio_set_mode (0, CC3_GPIO_MODE_SERVO);
      cc3_gpio_set_mode (1, CC3_GPIO_MODE_SERVO);
      cc3_gpio_set_mode (2, CC3_GPIO_MODE_SERVO);
      cc3_gpio_set_mode (3, CC3_GPIO_MODE_SERVO);
      cc3_gpio_set_servo_position (0, SERVO_MID);
      cc3_gpio_set_servo_position (1, SERVO_MID);
      cc3_gpio_set_servo_position (2, SERVO_MID);
      cc3_gpio_set_servo_position (3, SERVO_MID);
      cc3_pixbuf_frame_set_subsample (CC3_SUBSAMPLE_NEAREST, 2, 1);
      //cc3_camera_set_colorspace(CC3_COLORSPACE_YCRCB);
      cc3_camera_set_resolution(CC3_CAMERA_RESOLUTION_LOW);
      //cc3_pixbuf_frame_set_subsample(CC3_SUBSAMPLE_NEAREST, 2, 2);
      sw_color_space=DEFAULT_COLOR;
      auto_led = true;
      poll_mode = false;
      line_mode = 0;
      buf_mode = false;
      t_pkt_mask = 0xFF;
      fd_pkt.coi = 1;
      fd_pkt.template_width = 8;
      fd_pkt.template_height = 8;
      t_pkt.track_invert = false;
      t_pkt.noise_filter = 0;
      servo_settings.x_control = true;
      servo_settings.y_control = true;
      servo_settings.x_report = true;
      servo_settings.y_report = true;
      // init pixbuf with full size width and height
      x0 = 0;
      x1 = cc3_g_pixbuf_frame.raw_width;
      y0 = 0;
      y1 = cc3_g_pixbuf_frame.raw_height;
      cc3_pixbuf_frame_set_roi (x0, y0, x1, y1);
      // Load in color tracking parameters
      t_pkt.lower_bound.channel[0] = 89;
      t_pkt.upper_bound.channel[0] = 139;
      t_pkt.lower_bound.channel[1] = 0;
      t_pkt.upper_bound.channel[1] = 41;
      t_pkt.lower_bound.channel[2] = 0;
      t_pkt.upper_bound.channel[2] = 41;
      t_pkt.noise_filter = 0;
      while(true) {
        cmucam2_track_color (&t_pkt, poll_mode, line_mode, auto_led,
                                   &servo_settings, buf_mode,sw_color_space, 0);
        printf( "centroid = %d,%d bounding box = %d,%d,%d,%d num pix= %d
               density = %d\n",
                        t_pkt.centroid_x, t_pkt.centroid_y,
                        t_pkt.x0,t_pkt.y0,t_pkt.x1,t_pkt.y1,
                        t_pkt.num_pixels, t_pkt.int_density );
       }
    }
    static void cmucam2_track_color (cc3_track_pkt_t * t_pkt,
                               bool poll_mode,
                               int8_t line_mode, bool auto_led,
                               cmucam2_servo_t * servo_settings,
                               bool buf_mode, uint8_t sw_color_space, bool quiet)
    {
      cc3_image_t img;
      uint16_t x_mid, y_mid;
      int8_t t_step;
      bool prev_packet_empty = true;
      img.channels = 3;
      img.width = cc3_g_pixbuf_frame.width;
      img.height = 1;// image will hold just 1 row for scanline processing
      img.pix = cc3_malloc_rows (1);
      if (img.pix == NULL) {
        return;
      }
      /* GET FRAME CENTER */
      x_mid = cc3_g_pixbuf_frame.x0 + (cc3_g_pixbuf_frame.width / 2);
      y_mid = cc3_g_pixbuf_frame.y0 + (cc3_g_pixbuf_frame.height / 2);
      do {
        if (!buf_mode)
          cc3_pixbuf_load ();
        else
          cc3_pixbuf_rewind ();
        if (cc3_track_color_scanline_start (t_pkt) != 0) {
          uint8_t lm_width, lm_height;
          uint8_t *lm;
          lm_width = 0;
          lm_height = 0;
          while (cc3_pixbuf_read_rows (img.pix, 1)) {
            if(sw_color_space==HSV_COLOR && img.channels==CC3_CHANNEL_ALL)
                     cc3_rgb2hsv_row(img.pix,img.width);
                    cc3_track_color_scanline (&img, t_pkt);
          }
          // keep this check here if you don't want the CMUcam2 GUI to hang after
          // exiting a command in line mode
          while (!cc3_uart_has_data (0)) {
            if (getchar () == '\r') {
              free (img.pix);
              return;
            }
          }
          cc3_track_color_scanline_finish (t_pkt);
          if (auto_led) {
                    printf ("AUTOLED SCANLINE \r");
            if (t_pkt->int_density > 2)
              cc3_led_set_state (0, true);
            else
              cc3_led_set_state (0, false);
          }
          if (t_pkt->int_density > 5 && servo_settings != NULL) {
                    printf ("DENSITY & SERVO SET TC SCANLINE \r");
            if (servo_settings->x_control) {
              t_step = 0;
              if (t_pkt->centroid_x > x_mid + servo_settings->pan_range_far)
                t_step = servo_settings->pan_step;
              else if (t_pkt->centroid_x > x_mid + servo_settings->pan_range_near)
                t_step = (servo_settings->pan_step / 2);
              if (t_pkt->centroid_x < x_mid - servo_settings->pan_range_far)
                t_step = -servo_settings->pan_step;
              else if (t_pkt->centroid_x < x_mid - servo_settings->pan_range_near)
                t_step = -(servo_settings->pan_step / 2);
    #ifdef SERVO_REVERSE_DIRECTION_PAN
              servo_settings->x -= t_step;
    #else
              servo_settings->x += t_step;
    #endif
              t_step = 0;
              if (servo_settings->x > SERVO_MAX)
                servo_settings->x = SERVO_MAX;
              if (servo_settings->x < SERVO_MIN)
                servo_settings->x = SERVO_MIN;
              cc3_gpio_set_servo_position (0, servo_settings->x);
            }
            if (servo_settings->y_control) {
              if (t_pkt->centroid_y > y_mid + servo_settings->tilt_range_far)
                t_step = servo_settings->tilt_step;
              else if (t_pkt->centroid_y >
                       y_mid + servo_settings->tilt_range_near)
                t_step = servo_settings->tilt_step / 2;
              if (t_pkt->centroid_y < y_mid - servo_settings->tilt_range_far)
                t_step = -(servo_settings->tilt_step);
              else if (t_pkt->centroid_y <
                       y_mid - servo_settings->tilt_range_near)
                t_step = -(servo_settings->tilt_step / 2);
    #ifdef SERVO_REVERSE_DIRECTION_TILT
              servo_settings->y -= t_step;
    #else
              servo_settings->y += t_step;
    #endif
              if (servo_settings->y > SERVO_MAX)
                servo_settings->y = SERVO_MAX;
              if (servo_settings->y < SERVO_MIN)
                servo_settings->y = SERVO_MIN;
              cc3_gpio_set_servo_position (1, servo_settings->y);
            }
          }
          if (!quiet) {
            if (!(t_pkt->num_pixels == 0 && prev_packet_empty)) {
              cmucam2_write_t_packet (t_pkt, servo_settings);
            }
          }
          prev_packet_empty = t_pkt->num_pixels == 0;
        }
        else
          return;
        while (!cc3_uart_has_data (0)) {
          if (getchar () == '\r')
            break;
        }
      } while (!poll_mode);
      free (img.pix);
      return;
    }
    void cmucam2_write_t_packet (cc3_track_pkt_t * pkt, cmucam2_servo_t * servo_settings)
    {
      printf ("CALL fn WRITE_T_PACKET \r");
      // cap at 255
      if (pkt->centroid_x > 255)
        pkt->centroid_x = 255;
      if (pkt->centroid_y > 255)
        pkt->centroid_y = 255;
      if (pkt->x0 > 255)
        pkt->x0 = 255;
      if (pkt->x1 > 255)
        pkt->x1 = 255;
      if (pkt->y1 > 255)
        pkt->y1 = 255;
      if (pkt->y0 > 255)
        pkt->y0 = 255;
      if (pkt->num_pixels > 255)
        pkt->num_pixels = 255;
      if (pkt->int_density > 255)
        pkt->int_density = 255;
      // values to print
      uint8_t p[8];
      if (pkt->num_pixels == 0) {
        p[0] = p[1] = p[2] = p[3] = p[4] = p[5] = p[6] = p[7] = 0;
      }
      else {
            /* BOUNDING BOX, CENTROID, NUM_PIXELS, PIX_DENSITY */
        p[0] = pkt->centroid_x;
        p[1] = pkt->centroid_y;
        p[2] = pkt->x0;
        p[3] = pkt->y0;
        p[4] = pkt->x1;
        p[5] = pkt->y1;
        p[6] = pkt->num_pixels;
        p[7] = pkt->int_density;
      }
      uint8_t mask = t_pkt_mask;
      printf ("T");
      // print out fields using mask
      for (int i = 0; i < 8; i++) {
        if (mask & 0x1) {
            printf (" %d", p[i]);
        }
        mask >>= 1;
      }
      // print servo settings?
      if (servo_settings != NULL) {
        uint8_t sx = servo_settings->x;
        uint8_t sy = servo_settings->y;
        if (servo_settings->x_report) {
            printf (" %d", sx);
        }
        if (servo_settings->y_report) {
            printf (" %d", sy);
        }
      }
    }
    

    Please compile and check the syntax . Let me know if there any copy & paste error from cmucam2 soucefiles

    kind regards ,

    Ammar

    • Message #807

      Actually, the only thing you need to add is:

      t_pkt.track_invert = false;
      

      The problem is that this is defined as a bool type and by default the compiler does not seem to be setting it to 0. So when you call track color, it thinks that track_invert is enabled which gives you the opposite of what you want.

    • Message #1246

      Hello, I am very interested by your code, but I got an error message when I want to compile. Have you fixed the problem? Thanks

      franck@franck-PC /cygdrive/c/cc3/projects/cmucam2
      $ make
        CC      lpc2106-cmucam3_buildfiles/cmucam2.o
      cmucam2.c: In function 'main':
      cmucam2.c:58: warning: declaration of 'y0' shadows a global declaration
      f:\program files\codesourcery\sourcery g++ lite\bin\../lib/gcc/arm-none-eabi/4.4.1/include-fixed/mat
      h.h:364: warning: shadowed declaration is here
      cmucam2.c:58: warning: declaration of 'y1' shadows a global declaration
      f:\program files\codesourcery\sourcery g++ lite\bin\../lib/gcc/arm-none-eabi/4.4.1/include-fixed/mat
      h.h:365: warning: shadowed declaration is here
      cmucam2.c:122: warning: missing terminating " character
      cmucam2.c:122: error: missing terminating " character
      cmucam2.c:123: error: 'density' undeclared (first use in this function)
      cmucam2.c:123: error: (Each undeclared identifier is reported only once
      cmucam2.c:123: error: for each function it appears in.)
      cmucam2.c:123: error: expected expression before '%' token
      cmucam2.c:123: error: stray '\' in program
      cmucam2.c:123: warning: missing terminating " character
      cmucam2.c:123: error: missing terminating " character
      cmucam2.c: In function 'cmucam2_track_color':
      cmucam2.c:189: warning: comparison between signed and unsigned integer expressions
      cmucam2.c:191: warning: comparison between signed and unsigned integer expressions
      cmucam2.c:212: warning: comparison between signed and unsigned integer expressions
      cmucam2.c:215: warning: comparison between signed and unsigned integer expressions
      cmucam2.c:156: warning: unused variable 'lm'
      cmucam2.c:131: warning: unused parameter 'line_mode'
      cmucam2.c: At top level:
      ../../lib/cc3-ilp/cc3_hsv.h:27: warning: inline function 'cc3_rgb2hsv' declared but never defined
      make: *** [lpc2106-cmucam3_buildfiles/cmucam2.o] Error 1
      franck@franck-PC /cygdrive/c/cc3/projects/cmucam2
      $
      
      • Message #1251

        ok, I found the problem. At line 122.

        printf( "centroid = %d,%d bounding box = %d,%d,%d,%d num pix= %d
                   density = %d\n",
        

        Deleted spaces between %d and density

        printf( "centroid = %d,%d bounding box = %d,%d,%d,%d num pix= %d density = %d\n",
        

        Now, all is alright.

        sorry about double post

        • Message #1340

          Hi

          it still doesn't work for me, even with changing line 122

          I get: me@Flenders /cygdrive/c/cc3/projects/simple-track-color $ make

          MKDIR lpc2106-cmucam3_buildfiles

          mkdir lpc2106-cmucam3_buildfiles

          CC lpc2106-cmucam3_buildfiles/main.o

          In file included from main.c:13: ../../lib/cc3-ilp/cc3_jpg.h:19:21: error: jpeglib.h: No such file or directory main.c: In function 'main': main.c:56: warning: declaration of 'y0' shadows a global declaration c:\dokumente und einstellungen\me\eigene dateien\bin\../lib/gcc/arm-none-eabi/4. 2.3/include-fixed/math.h:359: warning: shadowed declaration is here main.c:56: warning: declaration of 'y1' shadows a global declaration c:\dokumente und einstellungen\me\eigene dateien\bin\../lib/gcc/arm-none-eabi/4. 2.3/include-fixed/math.h:360: warning: shadowed declaration is here main.c:123: warning: format '%d' expects type 'int', but argument 2 has type 'ui nt32_t' main.c:123: warning: format '%d' expects type 'int', but argument 3 has type 'ui nt32_t' main.c:123: warning: format '%d' expects type 'int', but argument 8 has type 'ui nt32_t' main.c:123: warning: format '%d' expects type 'int', but argument 9 has type 'ui nt32_t' main.c: In function 'cmucam2_track_color': main.c:186: warning: comparison between signed and unsigned main.c:188: warning: comparison between signed and unsigned main.c:209: warning: comparison between signed and unsigned main.c:212: warning: comparison between signed and unsigned main.c:153: warning: unused variable 'lm' main.c:128: warning: unused parameter 'line_mode' main.c:300:2: warning: no newline at end of file make: * [lpc2106-cmucam3_buildfiles/main.o] Error 1

          me@Flenders /cygdrive/c/cc3/projects/simple-track-color $

          would be grateful for any help

          • Message #1341

            sorry, here again the error message (hopefully in a better format)

            me@Flenders /cygdrive/c/cc3/projects/simple-track-color
            $ make
              MKDIR   lpc2106-cmucam3_buildfiles
            mkdir lpc2106-cmucam3_buildfiles
              CC      lpc2106-cmucam3_buildfiles/main.o
            In file included from main.c:13:
            ../../lib/cc3-ilp/cc3_jpg.h:19:21: error: jpeglib.h: No such file or directory
            main.c: In function 'main':
            main.c:56: warning: declaration of 'y0' shadows a global declaration
            c:\dokumente und einstellungen\me\eigene dateien\bin\../lib/gcc/arm-none-eabi/4.
            2.3/include-fixed/math.h:359: warning: shadowed declaration is here
            main.c:56: warning: declaration of 'y1' shadows a global declaration
            c:\dokumente und einstellungen\me\eigene dateien\bin\../lib/gcc/arm-none-eabi/4.
            2.3/include-fixed/math.h:360: warning: shadowed declaration is here
            main.c:123: warning: format '%d' expects type 'int', but argument 2 has type 'ui
            nt32_t'
            main.c:123: warning: format '%d' expects type 'int', but argument 3 has type 'ui
            nt32_t'
            main.c:123: warning: format '%d' expects type 'int', but argument 8 has type 'ui
            nt32_t'
            main.c:123: warning: format '%d' expects type 'int', but argument 9 has type 'ui
            nt32_t'
            main.c: In function 'cmucam2_track_color':
            main.c:186: warning: comparison between signed and unsigned
            main.c:188: warning: comparison between signed and unsigned
            main.c:209: warning: comparison between signed and unsigned
            main.c:212: warning: comparison between signed and unsigned
            main.c:153: warning: unused variable 'lm'
            main.c:128: warning: unused parameter 'line_mode'
            main.c:300:2: warning: no newline at end of file
            make: *** [lpc2106-cmucam3_buildfiles/main.o] Error 1
            me@Flenders /cygdrive/c/cc3/projects/simple-track-color
            $
            
            • Message #1342

              It looks like it isn't able to find jpeglib.h. You probably don't need to include jpeg to just do color tracking. However it should still compile. Can you check if jpeglib.h is in the /lib/jpeg-6b directory? Also make sure you run make from the root directory first.

              • Message #1343

                Hi

                thanks for the reply. The file jpeglib.h exists in the directory. I hope I understand it right from the sdk-guide, that I have to run "make" first in the cc3 directory and afterwards in the "simple-track-color" directory - right?

                I used "make clean" to undo everything and ran "make" again. The program runs and creates as well hex files (of which some are able to run); but I realized that there are already some error messages in the "make" which I run in the cc3 directory

                see part of the output:

                lgc.c:79: warning: cast increases required alignment of target type
                lgc.c:79: warning: cast increases required alignment of target type
                lgc.c:80: warning: cast increases required alignment of target type
                lgc.c:80: warning: cast increases required alignment of target type
                lgc.c: In function 'traversetable':
                lgc.c:164: warning: cast increases required alignment of target type
                lgc.c:164: warning: cast increases required alignment of target type
                lgc.c:174: warning: cast increases required alignment of target type
                lgc.c: In function 'traverseproto':
                lgc.c:214: warning: cast increases required alignment of target type
                lgc.c:214: warning: cast increases required alignment of target type
                lgc.c: In function 'traverseclosure':
                lgc.c:225: warning: cast increases required alignment of target type
                lgc.c:225: warning: cast increases required alignment of target type
                lgc.c:234: warning: cast increases required alignment of target type
                lgc.c:234: warning: cast increases required alignment of target type
                lgc.c:236: warning: cast increases required alignment of target type
                lgc.c:236: warning: cast increases required alignment of target type
                lgc.c: In function 'markmt':
                lgc.c:496: warning: cast increases required alignment of target type
                lgc.c:496: warning: cast increases required alignment of target type
                lgc.c: In function 'markroot':
                lgc.c:506: warning: cast increases required alignment of target type
                lgc.c:506: warning: cast increases required alignment of target type
                lgc.c: In function 'remarkupvals':
                lgc.c:519: warning: cast increases required alignment of target type
                lgc.c:519: warning: cast increases required alignment of target type
                lgc.c: In function 'atomic':
                lgc.c:536: warning: cast increases required alignment of target type
                lgc.c:536: warning: cast increases required alignment of target type
                lgc.c: In function 'luaC_barrierback':
                lgc.c:677: warning: cast increases required alignment of target type
                lgc.c: In function 'luaC_linkupval':
                lgc.c:697: warning: cast increases required alignment of target type
                lgc.c:703: warning: cast increases required alignment of target type
                lgc.c:703: warning: cast increases required alignment of target type
                  CC      lpc2106-cmucam3_buildfiles/llex.o
                  CC      lpc2106-cmucam3_buildfiles/loadlib.o
                loadlib.c: In function 'll_require':
                loadlib.c:458: warning: cast discards qualifiers from pointer target type
                loadlib.c:481: warning: cast discards qualifiers from pointer target type
                loadlib.c:488: warning: cast discards qualifiers from pointer target type
                  CC      lpc2106-cmucam3_buildfiles/loslib.o
                  CC      lpc2106-cmucam3_buildfiles/lstring.o
                  CC      lpc2106-cmucam3_buildfiles/ltablib.o
                  CC      lpc2106-cmucam3_buildfiles/lzio.o
                  CC      lpc2106-cmucam3_buildfiles/lauxlib.o
                  CC      lpc2106-cmucam3_buildfiles/ldblib.o
                ldblib.c: In function 'hookf':
                ldblib.c:209: warning: cast discards qualifiers from pointer target type
                ldblib.c: In function 'gethooktable':
                ldblib.c:245: warning: cast discards qualifiers from pointer target type
                ldblib.c:250: warning: cast discards qualifiers from pointer target type
                  CC      lpc2106-cmucam3_buildfiles/ldump.o
                  CC      lpc2106-cmucam3_buildfiles/linit.o
                  CC      lpc2106-cmucam3_buildfiles/lmathlib.o
                  CC      lpc2106-cmucam3_buildfiles/lobject.o
                  CC      lpc2106-cmucam3_buildfiles/lparser.o
                  CC      lpc2106-cmucam3_buildfiles/lstrlib.o
                  CC      lpc2106-cmucam3_buildfiles/ltm.o
                  CC      lpc2106-cmucam3_buildfiles/lundump.o
                lundump.c: In function 'LoadFunction':
                lundump.c:165: warning: cast increases required alignment of target type
                  CC      lpc2106-cmucam3_buildfiles/print.o
                  CC      lpc2106-cmucam3_buildfiles/lbaselib.o
                  CC      lpc2106-cmucam3_buildfiles/ldebug.o
                ldebug.c: In function 'collectvalidlines':
                ldebug.c:186: warning: cast increases required alignment of target type
                ldebug.c: In function 'lua_getinfo':
                ldebug.c:251: warning: cast increases required alignment of target type
                ldebug.c: In function 'luaG_errormsg':
                ldebug.c:603: warning: cast increases required alignment of target type
                  CC      lpc2106-cmucam3_buildfiles/lfunc.o
                lfunc.c: In function 'luaF_newCclosure':
                lfunc.c:25: warning: cast increases required alignment of target type
                lfunc.c: In function 'luaF_newLclosure':
                lfunc.c:35: warning: cast increases required alignment of target type
                lfunc.c: In function 'luaF_newupval':
                lfunc.c:46: warning: cast increases required alignment of target type
                lfunc.c: In function 'luaF_findupval':
                lfunc.c:61: warning: cast increases required alignment of target type
                lfunc.c:62: warning: cast increases required alignment of target type
                lfunc.c:72: warning: cast increases required alignment of target type
                lfunc.c: In function 'luaF_close':
                lfunc.c:100: warning: cast increases required alignment of target type
                lfunc.c: In function 'luaF_newproto':
                lfunc.c:117: warning: cast increases required alignment of target type
                  CC      lpc2106-cmucam3_buildfiles/liolib.o
                  CC      lpc2106-cmucam3_buildfiles/lmem.o
                  CC      lpc2106-cmucam3_buildfiles/lopcodes.o
                  CC      lpc2106-cmucam3_buildfiles/lstate.o
                lstate.c: In function 'f_luaopen':
                lstate.c:74: warning: cast increases required alignment of target type
                lstate.c:75: warning: cast increases required alignment of target type
                lstate.c: In function 'luaE_newthread':
                lstate.c:120: warning: cast increases required alignment of target type
                lstate.c:121: warning: cast increases required alignment of target type
                lstate.c: In function 'lua_newstate':
                lstate.c:149: warning: cast increases required alignment of target type
                lstate.c:170: warning: cast increases required alignment of target type
                  CC      lpc2106-cmucam3_buildfiles/ltable.o
                ltable.c: In function 'setnodevector':
                ltable.c:275: warning: cast discards qualifiers from pointer target type
                ltable.c: In function 'luaH_new':
                ltable.c:360: warning: cast increases required alignment of target type
                ltable.c:367: warning: cast discards qualifiers from pointer target type
                ltable.c: In function 'newkey':
                ltable.c:426: warning: cast increases required alignment of target type
                ltable.c: In function 'luaH_set':
                ltable.c:498: warning: cast discards qualifiers from pointer target type
                ltable.c: In function 'luaH_setnum':
                ltable.c:511: warning: cast discards qualifiers from pointer target type
                ltable.c: In function 'luaH_setstr':
                ltable.c:523: warning: cast discards qualifiers from pointer target type
                  CC      lpc2106-cmucam3_buildfiles/lvm.o
                lvm.c: In function 'callTMres':
                lvm.c:108: warning: cast increases required alignment of target type
                lvm.c: In function 'luaV_settable':
                lvm.c:163: warning: cast increases required alignment of target type
                lvm.c: In function 'Arith':
                lvm.c:343: warning: comparisons like X<=Y<=Z do not have their mathematical mean
                ing
                lvm.c:344: warning: comparisons like X<=Y<=Z do not have their mathematical mean
                ing
                lvm.c: In function 'luaV_execute':
                lvm.c:450: warning: cast increases required alignment of target type
                lvm.c:461: warning: cast increases required alignment of target type
                lvm.c:469: warning: cast increases required alignment of target type
                lvm.c:469: warning: cast increases required alignment of target type
                lvm.c:479: warning: cast increases required alignment of target type
                lvm.c:502: warning: comparisons like X<=Y<=Z do not have their mathematical mean
                ing
                lvm.c:506: warning: comparisons like X<=Y<=Z do not have their mathematical mean
                ing
                lvm.c:730: warning: cast increases required alignment of target type
                lvm.c:754: warning: cast increases required alignment of target type
                  AR      liblua51_lpc2106-cmucam3.a
                C:\Dokumente und Einstellungen\me\Eigene Dateien\bin\arm-none-eabi-ar.exe: creat
                ing liblua51_lpc2106-cmucam3.a
                make[4]: Leaving directory `/cygdrive/c/cc3/lib/lua51'
                make[4]: Entering directory `/cygdrive/c/cc3/lib/zlib'
                  MKDIR   lpc2106-cmucam3_buildfiles
                mkdir lpc2106-cmucam3_buildfiles
                  CC      lpc2106-cmucam3_buildfiles/adler32.o
                  CC      lpc2106-cmucam3_buildfiles/compress.o
                compress.c: In function 'compress2':
                compress.c:32: warning: cast discards qualifiers from pointer target type
                  CC      lpc2106-cmucam3_buildfiles/crc32.o
                  CC      lpc2106-cmucam3_buildfiles/gzio.o
                gzio.c: In function 'gz_open':
                gzio.c:101: warning: cast discards qualifiers from pointer target type
                gzio.c: In function 'gzwrite':
                gzio.c:568: warning: cast discards qualifiers from pointer target type
                gzio.c: In function 'gzputs':
                gzio.c:697: warning: cast discards qualifiers from pointer target type
                gzio.c: In function 'gzerror':
                gzio.c:1003: warning: cast discards qualifiers from pointer target type
                  CC      lpc2106-cmucam3_buildfiles/uncompr.o
                uncompr.c: In function 'uncompress':
                uncompr.c:35: warning: cast discards qualifiers from pointer target type
                  CC      lpc2106-cmucam3_buildfiles/deflate.o
                deflate.c: In function 'deflateInit2_':
                deflate.c:300: warning: cast discards qualifiers from pointer target type
                deflate.c: In function 'deflate':
                deflate.c:568: warning: cast discards qualifiers from pointer target type
                deflate.c:570: warning: cast discards qualifiers from pointer target type
                deflate.c:776: warning: cast discards qualifiers from pointer target type
                deflate.c:781: warning: cast discards qualifiers from pointer target type
                  CC      lpc2106-cmucam3_buildfiles/trees.o
                trees.c: In function '_tr_flush_block':
                trees.c:989: warning: cast discards qualifiers from pointer target type
                trees.c:989: warning: cast discards qualifiers from pointer target type
                  CC      lpc2106-cmucam3_buildfiles/zutil.o
                  CC      lpc2106-cmucam3_buildfiles/inflate.o
                  CC      lpc2106-cmucam3_buildfiles/infback.o
                  CC      lpc2106-cmucam3_buildfiles/inftrees.o
                  CC      lpc2106-cmucam3_buildfiles/inffast.o
                inffast.c: In function 'inflate_fast':
                inffast.c:82: warning: declaration of 'write' shadows a global declaration
                c:\dokumente und einstellungen\me\eigene dateien\bin\../lib/gcc/arm-none-eabi/4.
                2.3/../../../../arm-none-eabi/include/sys/unistd.h:166: warning: shadowed declar
                ation is here
                  AR      libzlib_lpc2106-cmucam3.a
                C:\Dokumente und Einstellungen\me\Eigene Dateien\bin\arm-none-eabi-ar.exe: creat
                ing libzlib_lpc2106-cmucam3.a
                make[4]: Leaving directory `/cygdrive/c/cc3/lib/zlib'
                make[4]: Entering directory `/cygdrive/c/cc3/lib/libpng-12'
                  MKDIR   lpc2106-cmucam3_buildfiles
                mkdir lpc2106-cmucam3_buildfiles
                  CC      lpc2106-cmucam3_buildfiles/png.o
                  CC      lpc2106-cmucam3_buildfiles/pngerror.o
                  CC      lpc2106-cmucam3_buildfiles/pngget.o
                pngget.c: In function 'png_get_asm_flagmask':
                pngget.c:847: warning: unused parameter 'flag_select'
                pngget.c: In function 'png_get_mmx_flagmask':
                pngget.c:879: warning: unused parameter 'flag_select'
                pngget.c:879: warning: unused parameter 'compilerID'
                  CC      lpc2106-cmucam3_buildfiles/pngmem.o
                  CC      lpc2106-cmucam3_buildfiles/pngpread.o
                pngpread.c: In function 'png_push_read_chunk':
                pngpread.c:219: warning: cast discards qualifiers from pointer target type
                pngpread.c:276: warning: cast discards qualifiers from pointer target type
                pngpread.c: In function 'png_push_read_IDAT':
                pngpread.c:681: warning: cast discards qualifiers from pointer target type
                  CC      lpc2106-cmucam3_buildfiles/pngread.o
                pngread.c: In function 'png_read_info':
                pngread.c:420: warning: cast discards qualifiers from pointer target type
                pngread.c: In function 'png_create_read_struct_2':
                pngread.c:38: warning: variable 'png_ptr' might be clobbered by 'longjmp' or 'vf
                ork'
                  CC      lpc2106-cmucam3_buildfiles/pngrio.o
                  CC      lpc2106-cmucam3_buildfiles/pngrtran.o
                  CC      lpc2106-cmucam3_buildfiles/pngrutil.o
                pngrutil.c: In function 'png_read_finish_row':
                pngrutil.c:2892: warning: cast discards qualifiers from pointer target type
                  CC      lpc2106-cmucam3_buildfiles/pngset.o
                pngset.c: In function 'png_set_asm_flags':
                pngset.c:1192: warning: unused parameter 'asm_flags'
                pngset.c: In function 'png_set_mmx_thresholds':
                pngset.c:1240: warning: unused parameter 'mmx_bitdepth_threshold'
                pngset.c:1241: warning: unused parameter 'mmx_rowbytes_threshold'
                  CC      lpc2106-cmucam3_buildfiles/pngtrans.o
                pngtrans.c:654: warning: no previous prototype for 'png_get_user_transform_ptr'
                  CC      lpc2106-cmucam3_buildfiles/pngwio.o
                  CC      lpc2106-cmucam3_buildfiles/pngwrite.o
                pngwrite.c: In function 'png_create_write_struct_2':
                pngwrite.c:445: warning: variable 'png_ptr' might be clobbered by 'longjmp' or '
                vfork'
                  CC      lpc2106-cmucam3_buildfiles/pngwtran.o
                  CC      lpc2106-cmucam3_buildfiles/pngwutil.o
                pngwutil.c: In function 'png_write_IHDR':
                pngwutil.c:497: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_PLTE':
                pngwutil.c:580: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_IDAT':
                pngwutil.c:652: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_IEND':
                pngwutil.c:664: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_gAMA_fixed':
                pngwutil.c:700: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_sRGB':
                pngwutil.c:720: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_iCCP':
                pngwutil.c:785: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_sPLT':
                pngwutil.c:825: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_sBIT':
                pngwutil.c:933: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_cHRM_fixed':
                pngwutil.c:1049: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_tRNS':
                pngwutil.c:1074: warning: cast discards qualifiers from pointer target type
                pngwutil.c:1086: warning: cast discards qualifiers from pointer target type
                pngwutil.c:1100: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_bKGD':
                pngwutil.c:1133: warning: cast discards qualifiers from pointer target type
                pngwutil.c:1146: warning: cast discards qualifiers from pointer target type
                pngwutil.c:1157: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_hIST':
                pngwutil.c:1182: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_tEXt':
                pngwutil.c:1346: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_zTXt':
                pngwutil.c:1406: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_oFFs':
                pngwutil.c:1529: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_pCAL':
                pngwutil.c:1571: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_sCAL_s':
                pngwutil.c:1661: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_pHYs':
                pngwutil.c:1687: warning: cast discards qualifiers from pointer target type
                pngwutil.c: In function 'png_write_tIME':
                pngwutil.c:1719: warning: cast discards qualifiers from pointer target type
                  AR      liblibpng-12_lpc2106-cmucam3.a
                C:\Dokumente und Einstellungen\me\Eigene Dateien\bin\arm-none-eabi-ar.exe: creat
                ing liblibpng-12_lpc2106-cmucam3.a
                make[4]: Leaving directory `/cygdrive/c/cc3/lib/libpng-12'
                make[3]: Leaving directory `/cygdrive/c/cc3/lib'
                make[2]: Leaving directory `/cygdrive/c/cc3/hal/lpc2106-cmucam3'
                make[2]: Entering directory `/cygdrive/c/cc3/hal/virtual-cam'
                make -f hal.mk
                make[3]: Entering directory `/cygdrive/c/cc3/hal/virtual-cam'
                gcc -c -o cc3.o cc3.c -I./../../include -Os -pipe -funit-at-a-time -Wall -Wstric
                t-prototypes -Wcast-align -Wcast-qual -Wimplicit -Wmissing-declarations -Wmissin
                g-prototypes -Wnested-externs -Wpointer-arith -Wswitch -Wno-redundant-decls -Wre
                turn-type -Wshadow -Wstrict-prototypes -Wunused -Wextra -Werror-implicit-functio
                n-declaration -ffreestanding -std=gnu99 -g -fdata-sections -ffunction-sections -
                DVIRTUAL_CAM
                make[3]: gcc: Command not found
                make[3]: *** [cc3.o] Error 127
                make[3]: Leaving directory `/cygdrive/c/cc3/hal/virtual-cam'
                make[2]: *** [hal] Error 2
                make[2]: Leaving directory `/cygdrive/c/cc3/hal/virtual-cam'
                make[1]: *** [all] Error 2
                make[1]: Leaving directory `/cygdrive/c/cc3/hal'
                make: *** [all] Error 2
                me@Flenders /cygdrive/c/cc3
                $
                

                do I do something wrong with the initial "make"? Is my order of running "make" in the directories wrong??

                Felix

Attachments

No attachments created.