Coder Social home page Coder Social logo

augustohorita / cox Goto Github PK

View Code? Open in Web Editor NEW

This project forked from coocox/cox

0.0 1.0 0.0 38.28 MB

CoX is an peripherals library with a unified standard interface specially for ARM Cortex M.

Home Page: http://www.coocox.org/cox.html

License: Other

C 46.01% C++ 36.14% Objective-C 5.61% Assembly 6.21% Shell 0.51% Perl 5.19% COBOL 0.01% CSS 0.26% Prolog 0.06%

cox's Introduction

CoX - CoX Peripheral Interface, by CooCox(http://www.coocox.org)

http://www.coocox.org/cox.html
https://github.com/coocox/cox

General Information
-------------------------------------------------------------------------------

CoX Peripheral Library is the definition of a group of interface functions. 
It defines the functional access functions of MCU's common peripherals, such 
as IIC, SPI, UART, etc. CoX makes full functions, drivers based on CoX can be 
ported to other MCU easily.

CoX Peripheral Library can be divided into four parts:
- Common mandatory type interface.
- Common type of non-mandatory interface.
- MCU-specific interface.
- MCU register interface.

Features
-------------------------------------------------------------------------------

- Free and open source under BSD license
- Peripherals library with a unified standard interface, can be ported to 
  other MCUs easily
- Full functions of the peripheral, CoX still provides a set of APIs for 
  special MCU features
- Support interrupt, CoX extracts a set of interrupt events
- A lot of reused drivers
- Extensive documentation generated using doxygen standard
- Standard definition of the API reference for almost all the Cortex-M0/M3 
  MCU manuals
- Add a new innovative element, such as the short pin (PA2) in GPIO module
- Strict coding standard and does not affect code size and speed, through 
  rigorous testing and verification
- Configurable
- Provide blank template to make port more easily

Why do we use CoX
-------------------------------------------------------------------------------

- CoX Peripheral is not only a common interface for drivers, but also a full 
  peripheral library
- CoX function interface unify the definition of the access functions of MCU's
  common peripherals, which makes you port programs among different MCUs more 
  conveniently.
- CoX has a set of specific realization for each MCU, and its code size and 
  speed are nearly the same as the library that the suppliers provided.
  
When should we use CoX
-------------------------------------------------------------------------------

- If users may change MCU in the future and do not want to do too much 
  unnecessary port work.
- If users plan to use the existing drivers based on CoX interface.

Interface Definition & Roadmap
-------------------------------------------------------------------------------

+----------+---------------------------------------------+--------+-----------+
|Interface |Description                                  |States  |Date       |
|----------|---------------------------------------------|--------|-----------|
|Startup   |CoX startup code                             |   Y    |09/2011    |  
|LowLayer  |CoX lowlayer support, such as type define,   |   Y    |09/2011    |
|          |register define,  debug assert and so on     |        |           |
|CORE 	   |Cortex-M0/M3 Core Peripheral Interface       |   Y    |09/2011    |
|SysCtl    |System Control(CG & PMC) Peripheral Interface|   Y    |09/2011    |
|DMA       |DMA Peripheral Interface                     |   Y    |09/2011    |
|GPIO      |GPIO & AFIO Peripheral Interface             |   Y    |09/2011    |
|UART      |UART Peripheral Interface                    |   Y    |09/2011    |
|SPI       |SPI(SSI) Peripheral Interface                |   Y    |09/2011    |
|I2C       |I2C Peripheral Interface                     |   Y    |09/2011    |
|TIMER     |Timer Peripheral Interface                   |   Y    |09/2011    |
|PWM       |PWM Peripheral Interface                     |   Y    |09/2011    |
|RTC       |RTC Peripheral Interface                     |   Y    |09/2011    |
|WDT       |Watchdog Timer Peripheral Interface          |   Y    |09/2011    |
|ADC       |ADC Peripheral Interface                     |   Y    |09/2011    |
|ACMP      |Analog Comparator Peripheral Interface       |   Y    |09/2011    |
|I2S       |Inter-Integrated Circuit Sound(I2S)          |   +    |12/2011    |
|          |Peripheral Interface                         |        |           | 
|CAN       |CAN Bus Peripheral Interface                 |   +    |12/2011    |
|USB       |USB Device/Host/OTG Peripheral Interface     |   +    |12/2011    |
|EBI       |EBI bus Peripheral Interface                 |   +    |12/2011    |
+----------+---------------------------------------------+--------+-----------+

Supported MCU Platform & Roadmap
-------------------------------------------------------------------------------

+-----------------+-------------------+--------+-----------+
|Manufacturer     |Series             |States  |Date       |
|-----------------|-------------------|--------|-----------|
|CooCox	          |CoX Port Template  |   Y    |09/2011    |
|-----------------|-------------------|--------|-----------|
|Nuvoton          |NUC1xx             |   Y    |09/2011    |
|                 |NUC122             |   +    |11/2011    |
|                 |M051               |   +    |12/2011    |
|-----------------|-------------------|--------|-----------|
|NXP              |LPC11c1x           |   +    |2012       |
|                 |LPC11xx            |   +    |12/2011    |
|                 |LPC12xx            |   +    |2012       |
|                 |LPC13xx            |   +    |2012       |
|                 |LPC17xx            |   +    |2012       |
|-----------------|-------------------|--------|-----------|
|ST               |STM32F10x          |   +    |12/2011    |
|-----------------|-------------------|--------|-----------|
|TI               |Stellaris          |   +    |12/2011    |
+-----------------+-------------------+--------+-----------+

Repository Information
-------------------------------------------------------------------------------

The contents of the repository can be divided into four parts:
- CoX interface and library code that ported to various MCU platforms 
- Drivers based on CoX, such as temperature sensors LCD1602 and so on 
- Protocol Stack based on CoX, such as USB stack and so on
- The code ported from all manufacturers library to CooCox CoIDE component 
  platform

Contribution
-------------------------------------------------------------------------------

Wish to be a contributor of CoX? You can:
1. Port Cox to a new MCU
2. Improve CoX
3. Develop drivers based on CoX

Please see the guide in the /Document/.

Repository Layout
-------------------------------------------------------------------------------

/CoX/
    CoX peripheral librarys for diffrent MCU platform and drivers or  
    middleware that based on the CoX peripheral interface.
    
    CoX_Peripheral/
        CoX peripheral librarys for diffrent MCU platform.
        
        CoX_Peripheral_Manual/
            Source for generate CoX peripheral manual.
            
        CoX_Peripheral_NUC1xx/
            CoX peripheral library for Nuvoton NUC1xx.
        
        CoX_Peripheral_Template/
            CoX peripheral library port template.
            
        ...
        
        publish/
            Publish CoX peripheral library script. 
                
    Driver/
        Drivers that based on the CoX peripheral interface.
        
        resource/
            testframe/
                Driver test frame.
                
        Sensor_Temp_ADI/
            Drivers for ADI temperature sensor. The directory name like this:
            Cate_SubCate_Manufacturer.

        Sensor_Temp_Microchip/
            Drivers for Microchip temperature sensor.
            
        ...
        
/Document/
    Some document.
    
/LICENSE
    Licensing and copyright information.
    
/Nuvoton/
    Peripheral library compatible with CMSIS provided by Nuvoton.
    
    NUC1xx/
        NUC1xx peripheral library provided by Nuvoton.
        
    ...
        
/README
    This file.
    
/Resource/
    Some useful tools.
        
        
    
    
        
        


cox's People

Contributors

xinyun avatar liamjeal avatar paulniu avatar jackieyan avatar machunyu avatar xuesongrenjun avatar kallow avatar renjun1234 avatar qhz avatar 0xc0170 avatar

Watchers

James Cloos avatar

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.