Search:

PmWiki

pmwiki.org

edit SideBar

Main / Projorg

Bare Metal Demo Code Sections Example

/******************************************************************************/
/*----------------------------------Includes----------------------------------*/
/******************************************************************************/

/******************************************************************************/
/*-----------------------------------Macros-----------------------------------*/
/******************************************************************************/

/******************************************************************************/
/*--------------------------------Enumerations--------------------------------*/
/******************************************************************************/

/******************************************************************************/
/*-----------------------------Data Structures--------------------------------*/
/******************************************************************************/

/******************************************************************************/
/*------------------------------Global variables------------------------------*/
/******************************************************************************/

/******************************************************************************/
/*-------------------------Function Prototypes--------------------------------*/
/******************************************************************************/

/******************************************************************************/
/*------------------------Private Variables/Constants-------------------------*/
/******************************************************************************/

/******************************************************************************/
/*-------------------------Function Implementations---------------------------*/
/******************************************************************************/

Here's a possible Scons hierarchy

Folder Layout:
===========================================================================
    ├ app_sw_lib                             # Folder that contains App Software libraries
    ├ build_env
    |   |-platform                           # Folder that contains list of target platform env which contains the compiler/linker/assembler flags
    |   |-toolchain                          # Folder that contains list of compiler env which has the compiler/linker/assembler name and also the build command to generate the executable
    ├ devices                                # Folder that contains off-chip 3rd party device drivers
    |   |-[BOARD]                            # Folder containing drivers for devices only found on particular boards
    ├ docs                                   # Folder that contains the documentation
    ├ drivers                                # Folder that contains peripheral driver code of the platform
    |   |-[VERSION]
    |   |   |-[PLATFORM]                    
    ├ hal 
    |   |-hal_api                            # Folder that contains the HAL (hardware abstraction layer) API. This should be pure header files
    |   |-hal_imp                            # Folder that contains platform implementation of the HAL API layer
    |   |   |-[PLATFORM]                    
    ├ projects
    |   |-[PROJECT]
    |   |   |-[PLATFORM]                
    |   |   |   |-linker                     # Folder containing the linker file(s)
    |   |   |   |-board                      # Folder containing the list of board(s)
    |   |   |   |   |-common                 # Folder containing the Common related c/h files to the boards
    |   |   |   |   |-ISRPriority.h          # File containing the ISR priority for a given board on a given platform
    |   |   |   |   |-[BOARD]                # Folder containing the boards specific files
    |   |   |   |   |   |-device_config.txt  # File containing the common pin configuration
    |   |   |   |   |   |-[REVISION]         # Folder containing the boards revision
    |   |   |   |   |   |   |-pin_mappings.c # File containing the pin configuration for this board/rev
    |   |   |   |   |   |   |-pin_mappings.h # File containing the pin configuration for this board/rev
    |   |   |   |   |   |   |-pinmap_work    # Folder containing the project workspace for Pin Map tool
    |   |   |-README                         # File containing information about this project  
    |   |   |-Sconscript                     # File containing the Scons project specific build flags and the files to be built
    |   |   |-src                            # Folder for src code 
    ├ README.md
    ├ rtos                                   # Folder that contains the RTOS kernel
    ├ Sconstruct                             # High level Sconstruct that takes in the argument parameter to build a project for a given platform using a specific toolchain
    └ site_scons                             # Folder for common Scons files

Page last modified on May 15, 2019, at 12:28 PM