Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meson build and socket callbacks #165

Merged
merged 145 commits into from Aug 19, 2020
Merged

Conversation

johandc
Copy link
Contributor

@johandc johandc commented Jul 4, 2020

Here is the initial merge of all Space Inventor work between 1.4 and 1.6. Setting the baseline in the development branch, befor starting the development of CSP 2.0

Major additions are:

CSP now supports building with the Meson build system.
New service concept: Socket callbacks. The service is executed using a connection less service callback running in the Router Task context. This feature is used for the csp_service_handler to handle ping, etc. within the router task. The major benefit is that it saves an entire task and stack, just to handle ping messages. Only simple services may be executed in order to not block the router task.
Avoid all calls to rand(), use rand_r instead with csp_get_ms as seed.
Change all portTICK_RATE_MS to portTICK_PERID_MS.

Johan De Claville Christiansen added 30 commits September 8, 2016 14:44
Note: This file should be replaced when a better build system is introduced
Warn if a global function is defined without a previous declaration.
Do so even if the definition itself provides a prototype.
Use this option to detect global functions that are not declared in
header files.
can_init was conflicting with a function in Atmel Software Framework
Note: this needs to be fixed in the socketcan driver too.
This should really be configurable.
Also we should seek to remove the can_rx_task because it's expensive
on memory limited systems.
PRIu8 and a few other C99 printf specifiers are not supported
by the new and MUCH improved newlib nano.
The stack size for the CAN task was hardcoded into the csp_can_init.
Instead we provide a function to start the task so the stack size
becomes an agument. Furthermore the recent changed that added two
distinct functions:
  csp_can_process_frame() and
  csp_can_process_frame_deferred()
enables the possibility of calling the process_frame() directly from ISR
and thereby avoid having to allocate a full task to do it.
Yes i know this should really be called from task context. But in the absence of a task, this will do as well.
Really it could be debated wether a semaphore should be used here
Johan De Claville Christiansen and others added 29 commits January 16, 2019 11:21
The sjw method works for peak can dongles, but not the PiCan2. Restore the old init behaviour untill we find a solution that works for both
FreeRTOS.h is only required to build libcsp not to use it.
Users of libcsp does not need to have the FreeRTOS installation in the include path.
This simplifies builds and speeds up compilation significantly.
Lots of conflicts resolved, needs testing now
@johandc johandc merged commit bba5665 into libcsp:develop Aug 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant