Code Monkey home page Code Monkey logo

yaos's People

Contributors

codacy-badger avatar fossabot avatar lza93 avatar onkwon 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yaos's Issues

systick granularity

When runtime finer than systick granularity, task runtime doesn't get updated as delta is zero.

Data memory can go exhausted by a real time task

As a real time task preempts idle task, the least priority task, idle task never gets chance to clean zombie tasks freeing data memory used by those zombie tasks. It makes eventually system go into out of memory.

Either of below have to be implemented to solve this problem:

  1. idle task gets its priority boosted up to the real time task's priority running at the moment
  2. call kill_zombie() function manually in a real time task

fs: `/dev` directory is not visible when disabling `CONFIG_FS`

Disabling CONFIG_FS, ramfs gets the root file system and mount /dev/ on it. But /dev/ directory isn't visible to user since it is not actually created in the root file system. There is calling dependency making it hard to create /dev' directory between mountingrootfsanddevfs`.

  1. Mount rootfs first
  2. Create /dev/ directory
  3. Mount devfs now

What makes it difficult is that to get [2] done system call functionality must be activated which only can be activated after devfs mounted.

embedfs also need to get optimized as it creates /dev/ in an incompatible way, not configuable to change its name.

Remove SMP support

It only causes instruction and memory overhead not fully supporting SMP. There is no use as well since YAOS is for single core processor. Let's forget about SMP and get rid of synchronization.

stm32f4: limited embedded flash memory write

only 64KB embedded flash memory are writable by user since flash sector size is not fixed but variable from 16KB to 128KB.

user must make sure not to exceed the boundary of 64KB writing into embedded flash memory. or the result is unpredictable.

Activate watchdog

implementing soft reset. don't forget to clean cache buffer first before reset

softirq optimization giving it hierarchy level

besides consider creating a thread for each event and just make it runnable in the handler, softirq_handler(). That would be more efficient than just calling in turn, waiting for the previous work done.

Implement fault handling

Return back to the task running if possible fixing the problem or schedule to another task after killing the task.

Reset if system is corrupted entirely.

Make it possible to free memory allocated to a static task

Some static task run just once doing something like initializing and it never returns memory back for system to use the unused memory. As task struct consumes memory the most among others, it is necessary to make that unused memory usable.

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.