GithubHelp home page GithubHelp logo

gd32vf103_firmware_library's Introduction

This is the directory to save original GD32VF103 Firmware Library

For more comprehensive information, please visit www.riscv-mcu.com

New development environment choices for GD32VF103

Nuclei have released NMSIS and Nuclei SDK to provide better support for Nuclei RISC-V Processor including GD32VF103.

We have modified the gd32vf103 firmware library to match NMSIS design, which you can play with it using the following platforms:

We also released a development board call Nuclei RV-STAR, which you can play with it by following https://doc.nucleisys.com/nuclei_board_labs/.

To learn about Nuclei Software Platform, please click https://doc.nucleisys.com

gd32vf103_firmware_library's People

Contributors

fanghuaqi avatar wshelloworld avatar xelarellum 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

gd32vf103_firmware_library's Issues

Template Make error: No rule to make target 'build/start.o' , needed by gd32vf103.elf

OS:Linux 10 buster
kernel:4.19.0-6-amd64
target device: GD32FV103C8T6
tool chain: riscv nuclei toolchain

Hi,
I'm beginner for embedded system,I want to use risc-v tool chain to build .bin file that can let me use dfu-util to upload to device.
I download this repository, and found that there is a Template folder, and observe there is a Makefile in it.
So I run 'make' like this:

~/Documents/GD32/GD32VF103_Firmware_Library/Template$ make

successfully build some .c files, there is an error below:

make: *** No rule to make target 'build/start.o', needed by 'build/gd32vf103.elf'. Stop.

I cd to upper folder and use gerp -nr gd32vf103.elf to find where this file is, it only appears at '.git' folder, I don't think '.git' is the correct location where gd32vf103.elf should be, so how can I solve this issue to build the code successfully?

gd32vf103.h header cannot be used from C++ module

I'm trying to use the gd32vf103.h header from a C++ module in a PlatformIO project for the Sipeed Longan Nano.

The C++ compilation fails with the following error message:

In file included from C:\.platformio\packages\framework-gd32vf103-sdk\GD32VF103_standard_peripheral\Include/gd32vf103_adc.h:38,
                 from include/gd32vf103_libopt.h:38,
                 from include/gd32v_pjt_include.h:4,
                 from src\main.cpp:35:
C:\.platformio\packages\framework-gd32vf103-sdk\GD32VF103_standard_peripheral/gd32vf103.h:179:41: error: redeclaration of C++ built-in type 
'bool' [-fpermissive]
  179 | typedef enum {FALSE = 0, TRUE = !FALSE} bool;
      |                                         ^~~~

The gd32vf103.h header has some preparations for C++ compilation, but the typedef for bool is not guarded:

typedef enum {FALSE = 0, TRUE = !FALSE} bool;

Are the framework headers intended to be usable from C++?

Add versions/releases/tags

Currently, as I understand, GD32VF103_Firmware_Library has no versioning.
Here https://registry.platformio.org/tools/platformio/framework-gd32vf103-sdk it has version 1.0.0 which is probably created by PlatformIO developers, not by the library developers.

When recently bc2be11 was added, and #1 was fixed, I would like to use the new version in PlatformIO, but your library has no versioning…

How about to add versions/tags:

?

I want to do preemptive interruptions.

I want to do preemptive interruptions.
But I can't.
In my environment, if multiple interrupts occur at the same time, they are handled by the tail chain.
What should I do to make it preemptive?

Alarmsystem for temp, GD32VF103

I want my code to trigger an alarm when the temp is to high or to low, and after 1 minut the alarm should accelerate in speed until someone restarts it.
Does anyone know how to change (t5expq()) so that it turns of and on at different speeds to make this alarming sound?
Fwi im a beginner.

#include "gd32vf103.h"
#include "drivers.h"
#include "eclicw.h"
#include "lcd.h"
#include "ds18b20.h"

void ds18B20callBack(unsigned int temp){
LCD_ShowNum(8, 10, temp>>4, 2, WHITE);
LCD_ShowNum(8, 30, temp%16, 2, WHITE);
}

int main(void){
int ms=0, s=0, key, pKey=-1, c=0, idle=0;
int lookUpTbl[16]={1,4,7,14,2,5,8,0,3,6,9,15,10,11,12,13};

t5omsi();                               // Initialize timer5 1kHz
colinit();                              // Initialize column toolbox
l88init();                              // Initialize 8*8 led toolbox
keyinit();                              // Initialize keyboard toolbox
Lcd_SetType(LCD_INVERTED);              // LCD_INVERTED/LCD_NORMAL!
Lcd_Init();
LCD_Clear(RED);
ds18B20init(&ds18B20callBack);          // Initialize ds18B20 temp sensor

eclic_global_interrupt_enable();        // !!!!! Enable Interrupt !!!!!

while (1) {
    idle++;                             // Manage Async events
    LCD_WR_Queue();                     // Manage LCD com queue!

    if (t5expq()) {                     // Manage periodic tasks
        l88row(colset());               // ...8*8LED and Keyboard
        ms++;                           // ...One second heart beat
        if (ms==1000){
          ms=0;
          l88mem(0,s++);
        }
        if ((key=keyscan())>=0) {       // ...Any key pressed?
          if (pKey==key) c++; else {c=0; pKey=key;}
          l88mem(1,lookUpTbl[key]+(c<<4));
        }
        l88mem(2,idle>>8);              // ...Performance monitor
        l88mem(3,idle); idle=0;
    }
}

}

Example code flash overflowed

Hi, when I build the ADC example : ADC0_EXTI_trigger_regular_inserted_channel
the system said
region 'flash' overflowed by 6852 bytes collect2: error: ld returned 1 exit status
But the other ADC example: ADC0_ADC1_regular_parallel
can successfully upload.
I use riscv official toolchain here
And my OS is debian 10

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.