paparazzi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paparazzi-commits] [paparazzi/paparazzi] e9523b: [arch/linux] test usin


From: GitHub
Subject: [paparazzi-commits] [paparazzi/paparazzi] e9523b: [arch/linux] test using timer_fd instead of SIGALR...
Date: Tue, 03 Mar 2015 09:11:34 -0800

  Branch: refs/heads/master
  Home:   https://github.com/paparazzi/paparazzi
  Commit: e9523b91383ce858b0131ddfae806242454bbd9f
      
https://github.com/paparazzi/paparazzi/commit/e9523b91383ce858b0131ddfae806242454bbd9f
  Author: Felix Ruess <address@hidden>
  Date:   2015-02-23 (Mon, 23 Feb 2015)

  Changed paths:
    M conf/Makefile.linux
    M sw/airborne/arch/linux/mcu_periph/sys_time_arch.c
    M sw/airborne/arch/linux/mcu_periph/sys_time_arch.h

  Log Message:
  -----------
  [arch/linux] test using timer_fd instead of SIGALRM

and create a separate thread for the sys_tick handling...

seems that some timer event are missed...


  Commit: c18355d4a592c640c5e05deb0b301de67388f1ca
      
https://github.com/paparazzi/paparazzi/commit/c18355d4a592c640c5e05deb0b301de67388f1ca
  Author: Felix Ruess <address@hidden>
  Date:   2015-02-23 (Mon, 23 Feb 2015)

  Changed paths:
    M conf/Makefile.linux
    M sw/airborne/arch/linux/mcu_periph/sys_time_arch.c

  Log Message:
  -----------
  [arch/linux] run sys_time thread with higher rt prio


  Commit: b2f1efbafaca68e74136a342d812d63eb4d544b6
      
https://github.com/paparazzi/paparazzi/commit/b2f1efbafaca68e74136a342d812d63eb4d544b6
  Author: Felix Ruess <address@hidden>
  Date:   2015-02-23 (Mon, 23 Feb 2015)

  Changed paths:
    M sw/airborne/arch/linux/mcu_periph/sys_time_arch.c

  Log Message:
  -----------
  [arch/linux]call sys_tick_handler more than once if we missed some events


  Commit: f25770882f1fbc587373bb982f8835d5f41ac6ac
      
https://github.com/paparazzi/paparazzi/commit/f25770882f1fbc587373bb982f8835d5f41ac6ac
  Author: Felix Ruess <address@hidden>
  Date:   2015-02-23 (Mon, 23 Feb 2015)

  Changed paths:
    M sw/airborne/arch/linux/mcu_periph/sys_time_arch.c
    A sw/airborne/arch/linux/rt_priority.h

  Log Message:
  -----------
  [arch/linux] separate file for get_rt_prio and some cleanup


  Commit: 85ffc78fb53ac3b83829f519ba46c33b594c917f
      
https://github.com/paparazzi/paparazzi/commit/85ffc78fb53ac3b83829f519ba46c33b594c917f
  Author: Freek van Tienen <address@hidden>
  Date:   2015-02-24 (Tue, 24 Feb 2015)

  Changed paths:
    M sw/airborne/boards/ardrone/navdata.c

  Log Message:
  -----------
  [ardrone] Fix IMU cleaning bug (discovered with new sys_time implementation)


  Commit: e2b741be03cd4e5c5a81a88c525e7d30a9c508be
      
https://github.com/paparazzi/paparazzi/commit/e2b741be03cd4e5c5a81a88c525e7d30a9c508be
  Author: Freek van Tienen <address@hidden>
  Date:   2015-02-25 (Wed, 25 Feb 2015)

  Changed paths:
    M sw/airborne/boards/ardrone/baro_board.c
    M sw/airborne/boards/ardrone/navdata.c
    M sw/airborne/boards/ardrone/navdata.h
    M sw/airborne/subsystems/imu/imu_ardrone2_raw.h

  Log Message:
  -----------
  [ardrone] Make navdata multi-threaded because of blocking read


  Commit: 973372733d0b8af8bb4c68e92a0ecd3a59023afe
      
https://github.com/paparazzi/paparazzi/commit/973372733d0b8af8bb4c68e92a0ecd3a59023afe
  Author: Freek van Tienen <address@hidden>
  Date:   2015-02-25 (Wed, 25 Feb 2015)

  Changed paths:
    M CHANGELOG.md
    M sw/airborne/boards/ardrone/navdata.c

  Log Message:
  -----------
  [ardrone] Fix small navdata bug and update changelog


  Commit: a0afeb5d50de3e79b2f7951efd71633593f0d940
      
https://github.com/paparazzi/paparazzi/commit/a0afeb5d50de3e79b2f7951efd71633593f0d940
  Author: Felix Ruess <address@hidden>
  Date:   2015-02-27 (Fri, 27 Feb 2015)

  Changed paths:
    M sw/airborne/boards/ardrone/navdata.c
    M sw/airborne/boards/ardrone/navdata.h

  Log Message:
  -----------
  [ardrone] rewrite navdata_read


  Commit: 3375555e34e89e13d92c0b48d2f5213afc86d9d3
      
https://github.com/paparazzi/paparazzi/commit/3375555e34e89e13d92c0b48d2f5213afc86d9d3
  Author: Felix Ruess <address@hidden>
  Date:   2015-02-27 (Fri, 27 Feb 2015)

  Changed paths:
    M sw/airborne/boards/ardrone/navdata.c
    M sw/airborne/boards/ardrone/navdata.h

  Log Message:
  -----------
  [ardrone] wait on condition variable in navdata_read

also no need to have buffer exposed in the header...


  Commit: f1309a0f34e7cd95a761923d4415d60188c2e19e
      
https://github.com/paparazzi/paparazzi/commit/f1309a0f34e7cd95a761923d4415d60188c2e19e
  Author: Felix Ruess <address@hidden>
  Date:   2015-03-03 (Tue, 03 Mar 2015)

  Changed paths:
    M CHANGELOG.md
    M conf/Makefile.linux
    M sw/airborne/arch/linux/mcu_periph/sys_time_arch.c
    M sw/airborne/arch/linux/mcu_periph/sys_time_arch.h
    A sw/airborne/arch/linux/rt_priority.h
    M sw/airborne/boards/ardrone/baro_board.c
    M sw/airborne/boards/ardrone/navdata.c
    M sw/airborne/boards/ardrone/navdata.h
    M sw/airborne/subsystems/imu/imu_ardrone2_raw.h

  Log Message:
  -----------
  Merge pull request #1117 from paparazzi/linux_sys_time_thread

Since using SIGALRM to call the sys_tick_handler (via setitimer) can cause 
problems like interrupting some other syscalls
(i.e. read,write, ioctl), setup a separate thread and use timer_fd instead.
That is a Linux-specific set of functions that presents POSIX timers as file 
descriptors rather than signals.

If the thread runs with a normal priority it can happen that some timer events 
are missed (and hence sys_time not updated in time).
So added a function to set a higher prio for that thread (needs root rights or 
properly set up limits for the user).
In some simple tests no events were missed when running with prio 29 via 
SCHED_FIFO, even if events would be missed,
the sys_tick_handler is called the appropriate number of times (so that the 
time is correct again after)...

After these changes also fix some bugs discovered in the ardrone navdata 
reading.
Reading is now done in a separate thread which waits on a condition variable 
until the navdata_update event loop has copied the buffer.


Compare: 
https://github.com/paparazzi/paparazzi/compare/1f49292dced1...f1309a0f34e7

reply via email to

[Prev in Thread] Current Thread [Next in Thread]