Giter Club home page Giter Club logo

riot's People

Contributors

aabadie avatar akshaim avatar basilfx avatar benpicco avatar bergzand avatar bors[bot] avatar cgundogan avatar chrysn avatar cladmi avatar dylad avatar fjmolinas avatar gschorcht avatar haukepetersen avatar jcarrano avatar jia200x avatar jue89 avatar kaspar030 avatar kb2ma avatar kfessel avatar kijewski avatar kyc0o avatar leandrolanzieri avatar ludwigknuepfer avatar maribu avatar miri64 avatar mrkevinweiss avatar oleghahm avatar peterkietzmann avatar smlng avatar thomaseichinger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

riot's Issues

floating point numbers are not displayed correctly when using printf/sprintf

example code:
uint32_t value = 4688400; float test_secs = (float)(value); printf("Value: %lu, test_secs: %f, test_secs/1000000: %f\n", value, test_secs, test_secs/1000000.0);
output:

Value: 4688400, test_secs: -593395331576418032070107601347274796814779226477615119074935151325494288374806955180858448199930421815096455549544570545856896334085141326372559621036970412650772246306121905719839090181013742283966753869290184601151471616.000000, test_secs/1000000: 0.000000

Remove swtimer

vtimer replaced swtimer which is therefore marked as deprecated. But swtimer is still available in the repository and used by some libraries and projects.

arm_reset(void) should not be in arm_common/arm_cpu.c

The following arm_reset() code is not valid for the mc1322x so it should be moved or guarded

__attribute__((naked, noreturn)) void arm_reset(void)
{
    dINT();
    WDTC   = 0x00FFF;
    WDMOD  = 0x03;
    WDFEED = 0xAA;
    WDFEED = 0x55;

    while (1);
}

stdout output is lost in memory pressure situations

When there is little to none free memory left, printf() messages are lost and truncated.
If not sufficient free memory becomes availiable, the program will simply not output anything anymore, but contiunes running. From the 'delay' between "memory being used up" and "no more log messages can be written" it seems like a preallocated buffer is used, when trying to allocate another buffer for printf in a low-memory situation, this fails and messages are cut off.
e.g. running test_malloc

2013-06-13 17:49:26,699 - INFO # Allocated 1024 Bytes at 0x0x7fe02c60, total 75336
2013-06-13 17:49:26,799 - INFO # Allocated 1024 Bytes at 0x0x7fe03068, total 76368
2013-06-13 17:49:26,899 - INFO # Allocated 1024 Bytes at 0x0x7fe03470, total 77400
2013-06-13 17:49:26,999 - INFO # Allocated 1024 Bytes at 0x0x7fe03878, total 78432
2013-06-13 17:49:27,089 - INFO # Free 1024 Bytes at 0x0x40002078, total 77416
2013-06-13 17:49:27,179 - INFO # Free 1024 Bytes at 0x0x40002490, total 76384
2013-06-13 17:49:27,284 - INFO # Free 1024 Bytes at 0x0x400028a8, total 75352
2013-06-13 17:49:27,374 - INFO # Free 1024 Bytes at 0x0x40002cc0, total 74320
2013-06-13 17:49:27,466 - INFO # Free 1024 Bytes at 0x0x400030d8, total 73288
2013-06-13 17:49:27,556 - INFO # Free 1024 Bytes at 0x0x400034f0, total 72256
2013-06-13 17:49:27,648 - INFO # Free 1024 Bytes at 0x0x40003908, total 71224
2013-06-13 17:49:27,744 - INFO # Free 1024 Bytes at 0x0x40003d20, total 70192
2013-06-13 17:49:27,836 - INFO # Free 1024 Bytes at 0x0x40004138, total 69160
2013-06-13 17:49:27,926 - INFO # Free 1024 Bytes at 0x0x40004550, total 68128
2013-06-13 17:49:28,016 - INFO # Free 1024 Bytes at 0x0x40004968, total 67096
2013-06-13 17:49:28,106 - INFO # Free 1024 Bytes at 0x0x40004d80, total 66064
2013-06-13 17:49:28,248 - INFO # Free 1024 Bytes at 0x0x4ocated 1024 Bytes at 0x0x40004958, total 26832
2013-06-13 17:49:28,348 - INFO # Allocated 1024 Bytes at 0x0x40004d70, total 27864
2013-06-13 17:49:28,448 - INFO # Allocated 1024 Bytes at 0x0x40005188, total 28896
2013-06-13 17:49:28,548 - INFO # Allocated 1024 Bytes at 0x0x400055a0, total 29928
2013-06-13 17:49:28,648 - INFO # Allocated 1024 Bytes at 0x0x400059b8, total 30960

(the exact point of the corruption differs with slightly different binaries, but is consistent when using the same binary)

Make transceivers a bit field

The variable transceivers in sys/transceiver/transceiver.c is currently a enum. This should be changed in order to use it as a bit field.

Race condition in hwtimer_wait()

The function hwtimer_wait() internally calls hwtimer_set() to schedule a thread_wakeup() and then calls thread_sleep(), If an IRQ occurs before thread_sleep() gets called, this thread might never wake up again. One solution could be the usage of mutexes instead (as in former µkleos/FeuerWare code).

native port threading is unreliable

Depending on the application, the in-process preemptive threading implementation leads to undefined behavior.
The problem manifests (at least) when returning to interrupted threads in some situations.

POSIX compliance

Implement POSIX layer, particular of interest:

  • Process Creation and Control
  • Thread Creation, Control, and Cleanup as well as Thread Synchronization
  • Signals and Signal Handling
  • Timers
  • File and Directory Operations
  • Pipes
  • C Library (Standard C)
  • I/O Port Interface and Control
  • Process Triggers
  • Priority Scheduling
  • Real-Time Signals
  • Clocks and Timers
  • Semaphores
  • Message Passing
  • Shared Memory
  • Asynch and Synch I/O

auto_init does not work

auto_init checks MODULE_$name defines for whether a module is present, e.g.

#ifdef MODULE_VTIMER
    DEBUG("Auto init vtimer module.\n");
    vtimer_init();
#endif 

However, MODULE_VTIMER is defined nowhere, at least not with the new buildsystem.

Wrong byte order in sixlowpan

Various functions in sys/net/sixlowpan do not use network byte order. (#18 is related) HTONS/HTONL and NTOHS/NTOHL should be used.

Multiple definitions in sixlowpan

Several (global) variables in sixlowpan are defined more than once and declared as extern in header files, e.g. ipv6_ext_hdr_len, packet_length, ipv6_buf etc.

Asynchronous message reception

Currently only asynchronous sending of messages is possible. An additional function to provide non-blocking message reception needs to be implemented to allow for asynchronous message reception.

low hanging warnings fruits

I discovered some warnings...especially the last one seems to be a real problem

hwtimer_cpu.c:243:55: warning: unused parameter 'fcpu' [-Wunused-parameter]
void hwtimer_arch_init(void (*handler)(int), uint32_t fcpu)

irq_cpu.c:295:43: warning: unused parameter 'info' [-Wunused-parameter]
void native_isr_entry(int sig, siginfo_t *info, void *context)

[removed one warning (was not in master]

mutex.c:94:46: warning: unused parameter 'yield' [-Wunused-parameter]
void mutex_unlock(struct mutex_t *mutex, int yield)

vtimer.c:80:24: warning: unused parameter 'ptr' [-Wunused-parameter]
void vtimer_tick(void *ptr)

vtimer.c:112:28: warning: unused parameter 'ptr' [-Wunused-parameter]
void vtimer_callback(void *ptr)

Thread does not wake up

In sixlowpan implementation the thread "lowpan_context_rem" (see /sys/net/sixlowpan/sixlowpan.c) does not wake up anymore, after I put it to sleep for a minute (in function lowpan_context_auto_remove()).

about architecture

1: core ....Do not include other files.. ex: hwtimer.h #include<hwtimer_cpu.h>
kernel.h #iinclude "cpu.h" "cpu-conf.h"

2: cpu.... Contains only the basic configuration and Start to main(); ex: cmsis.

3: board ... Basic configuration or BSP.

4: codes ... No crossover between various CPU or board or project..

Optimize scheduler

The scheduler - particular the function sched_run() - comprises some possibly unnecessary checks for null pointer and so on.

Additionally, some functionality is only need with certain modules (like NSS) activated and could be excluded (using precompiler instructions) if theses modules are not active.

net: eliminate RIOT IPv6 network layer bottleneck

In the current state, the RIOT network layer tolerates only 1 IPv6 packet going in or out of the device at the same time. Outgoing packets can overwrite incoming packets and the other way around due to the fact that there is only 1 buffer for incoming and outgoing packets (IPv6 Buffer: uint8_t buffer[BUFFER_SIZE]". Find a solution to avoid overwriting of incoming/outgoing packets, especially when using fast transmissions.

The TCP layer (only!) is currently using a dirty HACK for sending packets via a separate output buffer "uint8_t ip_send_buffer[BUFFER_SIZE]" in sys/net/sixlowpan/sixlowip.c

crash in on msg_send if more then one thread is waiting for send

cause of lazy initialization of queue_node_t in func msg_send() (file core/msg.c) a data abort is possible on next call of queue_priority_add on the target thread.
To avoid the data abort the queue_node_t n.next attribute should be initialized with NULL.

vtimer_now() returns only micro-seconds

vtimer_now() returns a timex_t struct containing seconds as well as micro-seconds. The seconds are always 0 because the global variable in sys/vtimer.c "seconds" is never increased or set. The responsible function vtimer_tick(void *ptr) is never called.

vtimer_now() returns struct

According to the coding conventions and best practice no function should return a struct. However, vtimer_now() returns a struct of the type timex_t. This should be replaced by adding an output parameter.

Manual calibration of the CC1100

Currently the CC1100 transceiver is set to automatic calibration every fourth time when going from either RX or TX to IDLE. While there is no manual calibration performed at channel assignment, the first four packets after switching the channel are likely to get lost.

rtc_set_localtime does not set epoch

When change rtc_set_localtime from a static to an interface function, it was overlooked that this function does not set epoch and that rtc_time will result in wrong values.

Create first steps documentation

reate a documentation including everything to get started with the MSB-A2 sensor platform and µkleos kernel:

  • installing the toolchain
  • getting the sources
  • compiling projects
  • flashing the nodes
  • serial communication
  • simple program examples

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.