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
Describe the solution you'd like
A gpio HAL driver for STM32 platform.
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.
Use header file for toolchain agnostic asm macros and
choose the definition file based on the toolchain.
Describe the bug
mcall to fetch dp/sp may return NULL pointer but with success.
Describe the bug
With the current memory alignment, gap between various memory sections have been observed. Updated the alignment to 4B as per documentation.
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.
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.
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.
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.
Is your feature request related to a problem? Please describe.
A feature that can enable CC framework to be portable between different OS frameworks.
Describe the bug
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.
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
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.
Add support for AVR8-v6, ATMega2560 platform.
Describe the bug
DP/SP and memory info are outdated for atmega2560.
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
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.
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
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;
@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.
Need ARM-M4 support
Describe the solution you'd like
Using TIVA 4C, Please add support for ARM-M4 and the platform drivers
Describe the bug
Issue List
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.
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.
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
For collecting samples at almost machine level of sampling; I.e. without introducing additional delay between 2 samples, our current platform intro uses delay by performing a check for data alignment.
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
Changes needed in libresource and Hal drivers.
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.
A comprehensive timer and PWM driver is needed to start work on mini kernel.
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.
Cyancore currently does not have the required support for FreeRTOS
Describe the solution you'd like
FreeRTOS port onto Cyancore Framework
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.
/**
* 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>
*/
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.
Describe the bug
mcall_update is a machine call exception handler updating function and it needs to update on every CPU.
for starters A basic debug feature to dump the reg frame on interrupt or error...
Add support for "%f" and "%lf".
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.
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>
************************************************************************************************************/
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.