visorfolks / cyancore Goto Github PK
View Code? Open in Web Editor NEWA unified software platform for embedded system projects ...
Home Page: https://visorfolks.co.in
License: Other
A unified software platform for embedded system projects ...
Home Page: https://visorfolks.co.in
License: Other
In the init routine of the cpu perform check for reset cause. This is necessary to select boot flow so that system can take necessary action.
This is still under brainstroming... May take up some time before I come up with definitive solution.
This is a critical enhancement update for the cyancore framwork.
Is your feature request related to a problem? Please describe.
This feature is needed to build the cyancore software framework on Windows OS.
Describe the solution you'd like
Describe alternatives you've considered
Describe the solution you'd like
Global timer and scheduler timer are required for time stamping and invoking scheduler.
The two timer instance should internally call platform APIs and manage the callbacks.
Is your feature request related to a problem? Please describe.
When console / memory logger is not being used printf becomes a dead code and increases text size.
Describe the solution you'd like
Set flags internally that disables logs.
Is your feature request related to a problem? Please describe.
Terravisor needs multi-tasking support
Describe the solution you'd like
Create a mini kernel with various scheduling algorithms for multi tasking.
Changes needed in libresource and Hal drivers.
Add support for "%f" and "%lf".
Solution: use same compiler for both modes. Provide flag to use cpp over c. Default, use C.
Is your feature request related to a problem? Please describe.
Add ARM Cortex M0+ CPU support on Cyancore
Describe the solution you'd like
Using Raspberry PI Pico, port cpu and platform support on cyancore
Is your feature request related to a problem? Please describe.
Cyancore currently does not have the required support for FreeRTOS
Describe the solution you'd like
FreeRTOS port onto Cyancore Framework
Describe the bug
mcall to fetch dp/sp may return NULL pointer but with success.
Is your feature request related to a problem? Please describe.
Drivers currently use bss/ro/rw data space for instantiating their port structures. These needs to be moved to heap for optimum use.
Describe the solution you'd like
Use malloc and free to assign and claim space for driver ports.
Describe the bug
When we try to port minimal project, the build fails giving dependency error on WDT and Console.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
This should be a clean build without any errors. But we face build issues.
Describe the bug
Upon debug, it is found that data copy isn't happening properly after the memory organisation was updated. This led to bad data on the ram thereby resulting in boot failure.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Boot failure and blank screen if using demo_avr
Is your feature request related to a problem? Please describe.
Need RISC-V core to the platform.
Describe the solution you'd like
Using Freedom Board E310, the support for CPU and platform will be ported.
Is your feature request related to a problem? Please describe.
Need ARM-M4 support
Describe the solution you'd like
Using TIVA 4C, Please add support for ARM-M4 and the platform drivers
Is your feature request related to a problem? Please describe.
A comprehensive timer and PWM driver is needed to start work on mini kernel.
Describe the bug
sysclk_set_clk(<clk_type>, <clk_val>) return wrong code upon successful execution
To Reproduce
Steps to reproduce the behavior:
call function 'printf("%u\n", -sysclk_set_clk(pll, 320e6));'
Expected behavior
Successful programming should return 0.
for starters A basic debug feature to dump the reg frame on interrupt or error...
Is your feature request related to a problem? Please describe.
This is a make build related FR. For RPi Pico we need elf to uf2 generation tool.
RPi provides tool called as picotool which handles this.
Describe the solution you'd like
Visit: https://github.com/raspberrypi/picotool
Get/Build the tool and integrate it as part of Cyancore
Describe the bug
Is your feature request related to a problem? Please describe.
Add IS_ISR() API to depict an ISR context.
Describe the solution you'd like
An unified API to tell about current call context to help kernel being non-blocking if the kernel API is being called from ISR context.
/**
\brief Get IPSR Register
\details Returns the content of the IPSR Register.
\return IPSR Register value
*/
__STATIC_FORCEINLINE uint32_t __get_IPSR(void)
{
uint32_t result;
__ASM volatile ("MRS %0, ipsr" : "=r" (result) );
return(result);
}
#if (__ARM_ARCH_7A__ == 1U)
/* CPSR mode bitmasks */
#define CPSR_MODE_USER 0x10U
#define CPSR_MODE_SYSTEM 0x1FU
#define IS_IRQ_MODE() ((__get_mode() != CPSR_MODE_USER) && (__get_mode() != CPSR_MODE_SYSTEM))
#else
#define IS_IRQ_MODE() (__get_IPSR() != 0U)
#endif
#define IS_IRQ() IS_IRQ_MODE()
Describe the bug
With the current memory alignment, gap between various memory sections have been observed. Updated the alignment to 4B as per documentation.
@MayuriLokhande has identified occurrence of "ARC" which was old name of Cyancore.
Please replace the same with CC
Is your feature request related to a problem? Please describe.
A feature that can enable CC framework to be portable between different OS frameworks.
/**
* File Name: < 1 Tab > < name >
* Description: < 1 Tab > < description >
* < 2 Tab, align to start of description > < descrption-contd. >
* Primary Author: < align >< name > [< email >]
* Date: < use tab to align to start of largest subject >< Original Date of creation >
*/
/**
* < License > ...
*/
/**
* <Function name> - 1 Liner description
* <Full Description >
* <arg0>
* <arg1>
* ...
* <return>
*/
Syslog shall be a global logging system for the complete system that can be divided into multiple critical levels.
The user shall be provided with the placeholder to write and register callbacks for different logging channels.
Hence when the log function is called all the channels can be populated with the data to be logged simultaneously.
Describe the bug
Issue List
Is your feature request related to a problem? Please describe.
While the cpu boots, certain boot routines need not be executed such as platform_early_boot during resume routine, provided cpu alone gets reset. There are many more such instance which needs to be looked into for which these APIs are necessary.
Describe the solution you'd like
3 APIs are needed, namely:
These APIs are per cpu basis, please perform necessary checks.
Is your feature request related to a problem? Please describe.
Onboard temperature sensor readout is needed to monitor system health.
Describe the solution you'd like
Use existing ADC driver for MegaAVR chips and port the support for onboard thermal sensor.
Is your feature request related to a problem? Please describe.
This is FR for watchdog driver. As no port for wdt is added on MegaAVR platform, Raising a requirement for the same.
Describe the bug
DP/SP and memory info are outdated for atmega2560.
Describe the bug
mcall_update is a machine call exception handler updating function and it needs to update on every CPU.
Is your feature request related to a problem? Please describe.
For execution of modules that may not be used later, common variables can be part of heap and freed on exit. This saves RO/RW/Bss space.
Describe the solution you'd like
Implement malloc and free.
For the sake of better user experience add function headers that provides information about the function.
Sample:
/************************************************************************************************************
* @brief: <add a brief about the function>
*
* @param[in] <input parameter name> <description of the param>
* @param[out] <output parameter name> <description of the param>
*
* @return <brief about expected returns or error codes>
************************************************************************************************************/
Describe the bug
Using unsigned int means restricting the size to 2 or 4 bytes max which does not comply with pointers which can acquire up-to 8 bytes of space when using pointers. Hence it is a huge vulnerability for inter-arch switch.
Expected behavior
To be able to pass pointers through the mcalls irrespective of any arch.
Workaround
To introduce a user-defined type which switches between the data-type sizes as required.
Eg:
#if defined(ARCH_ARM_32)
#define __CALL_ARG_TYPE__ unsigned long
#elif defined(ARCH_RISCV_64) || defined(ARCH_ARM_64)
#define __CALL_ARG_TYPE__ unsigned long
#else
#define __CALL_ARG_TYPE__ unsigned int
#endif
typedef __CALL_ARG_TYPE__ call_args;
Need for this feature: in future, apps will be required to be created on cyancore. For this we need library which can perform calls to each layer independently.
Milestone: Assigning no milestone as of now... Let's keep patching the code base.
Describe the solution you'd like
A gpio HAL driver for STM32 platform.
Add support for AVR8-v6, ATMega2560 platform.
Describe the bug
Is your feature request related to a problem? Please describe.
There is a need for a tool to perform code check to address most of the compile time boundary cases.
Describe the solution you'd like
Add cppcheck tool to build-engine to auto check all the sources.
Use header file for toolchain agnostic asm macros and
choose the definition file based on the toolchain.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.