1.Add the general part bsp of ch32 (including system clock, software interrupts, interrupt controllers, etc.). Supports V00X/V10X/V20X/V30X (Although the V00X series is supported, the sram of the chip is too small and it is not recommended for use).
1.The asynchronous framework relies on workqueue to implement asynchronous operations and, with the help of macro features, can achieve an RTOS-like experience in a bare-metal environment.
1.Remove the particularly costly parts such as the path of the object, reduce the system kernel, and support fine-grained kernel cropping. Compatible with low-capacity products.
2.Support low-power mode.
1.Added attributes of kernel objects. You can directly manipulate the attributes supported by objects by running show and store.
2.The kernel timer has three attributes: tick,mode, and status. Because of the danger of OS operations, attributes are not supported by kernel OS objects.
3.Kernel printf has a bug when printing strings, an incorrect comparison condition causes the print to be missing content.
Previous versions of the os memory inline within the kthread, making the adaptation of different os more complicated (because each thread deletion mechanism is different, the inline memory needs to wait until the thread is recycled before release); Kernel threads are now simplified, and the memory of thread objects remains in mr-X, while the memory of threads is managed by the os.
1.Was not satisfied with the original kernel object implementation, so it was refactored.
2.Due to the structure, the rest also needs to be reconstructed.