Skip to content

Instantly share code, notes, and snippets.

@JSchaenzle
Created October 9, 2012 21:51
Show Gist options
  • Save JSchaenzle/3861684 to your computer and use it in GitHub Desktop.
Save JSchaenzle/3861684 to your computer and use it in GitHub Desktop.
Ceedling PIC Demo - Config file
:commmon: &common_defines
- __PIC24HJ128GP202__
- UNITY_INT_WIDTH=16
- CMOCK_MEM_INDEX_TYPE=uint16_t
- CMOCK_MEM_PTR_AS_INT=uint16_t
- CMOCK_MEM_ALIGN=1
- CMOCK_MEM_SIZE=4096
:include:
- "C:/Program Files (x86)/Microchip/xc16/v1.10/support/PIC24H/h"
---
# Notes:
# Sample project C code is not presently written to produce a release artifact.
# As such, release build options are disabled.
# This sample, therefore, only demonstrates running a collection of unit tests.
:project:
:use_exceptions: FALSE
:use_test_preprocessor: TRUE
:use_auxiliary_dependencies: TRUE
:build_root: build
:release_build: TRUE
:test_file_prefix: test_
:release_build:
:output: MyPicApp.out
:use_assembly: FALSE
:environment:
:extension:
:executable: .out
:paths:
:test:
- +:test/**
- -:test/support
:source:
- src/**
:support:
- test/support
:include:
- "C:/Program Files (x86)/Microchip/xc16/v1.10/support/PIC24H/h/"
:defines:
# in order to add common defines:
# 1) remove the trailing [] from the :common: section
# 2) add entries to the :common: section (e.g. :test: has TEST defined)
:commmon: &common_defines
- __PIC24HJ128GP202__
- UNITY_INT_WIDTH=16
- CMOCK_MEM_INDEX_TYPE=uint16_t
- CMOCK_MEM_PTR_AS_INT=uint16_t
- CMOCK_MEM_ALIGN=1
- CMOCK_MEM_SIZE=4096
:test:
- *common_defines
- TEST
:test_preprocess:
- *common_defines
- TEST
:cmock:
:mock_prefix: mock_
:when_no_prototypes: :warn
:enforce_strict_ordering: TRUE
:plugins:
- :ignore
- :callback
:treat_as:
uint8: HEX8
uint16: HEX16
uint32: UINT32
int8: INT8
bool: UINT8
:tools:
:test_compiler:
:executable: xc16-gcc
:arguments:
- -mcpu=24HJ128GP202
- -x c
- -c
- "${1}"
- -o "${2}"
- -D$: COLLECTION_DEFINES_TEST_AND_VENDOR
- -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR
- -Wall
#- -Werror # We can't keep this on during test becuase of a CMock pointer issue
- -Os
- -mlarge-code
- -mlarge-arrays
:test_linker:
:executable: xc16-gcc
:arguments:
- -mcpu=24HJ128GP202
- ${1}
- -o "./build/release/TestBuild.out"
- -Wl,-Tp24HJ128GP202.gld,-Map=./build/release/TestOutput.map,--report-mem
:test_fixture:
:executable: ruby
:name: "Microchip simulator test fixture"
:stderr_redirect: :win #inform Ceedling what model of $stderr capture to use
:arguments:
- test/simulation/sim_test_fixture.rb
:release_compiler:
:executable: xc16-gcc
:arguments:
- -mcpu=24HJ128GP202
- -x c
- -c
- "${1}"
- -o "${2}"
- -I"$": COLLECTION_PATHS_SOURCE_INCLUDE_VENDOR
- -I"$": COLLECTION_PATHS_RELEASE_TOOLCHAIN_INCLUDE
- -D$: COLLECTION_DEFINES_RELEASE_AND_VENDOR
- -Wall
- -Werror
- -Os
- -mlarge-code
- -mlarge-arrays
:release_linker:
:executable: xc16-gcc
:arguments:
- -mcpu=24HJ128GP202
- ${1}
- -o "${2}"
- -Wl,-Tp24HJ128GP202.gld,-Map=./build/release/MyPicApp.map,--report-mem
:plugins:
:load_paths:
- vendor/ceedling/plugins
:enabled:
- stdout_pretty_tests_report
- module_generator
...
LD pic24super
LC build/release/TestBuild.out
IO NULL test/simulation/out.txt
RP
E
quit
OUT_FILE = "test/simulation/out.txt"
File.delete OUT_FILE if File.exists? OUT_FILE
IO.popen("sim30 test/simulation/sim_instructions.txt")
sleep 1
if File.exists? OUT_FILE
file_contents = File.read OUT_FILE
file_contents.gsub!("\n", "")
print file_contents
end
:test_fixture:
:executable: ruby
:name: "Microchip simulator test fixture"
:stderr_redirect: :win #inform Ceedling what model of $stderr capture to use
:arguments:
- test/simulation/sim_test_fixture.rb
:tools:
:test_compiler:
:executable: xc16-gcc
:arguments:
- -mcpu=24HJ128GP202
- -x c
- -c
- "${1}"
- -o "${2}"
- -D$: COLLECTION_DEFINES_TEST_AND_VENDOR
- -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR
- -Wall
- -Os
- -mlarge-code
- -mlarge-arrays
:test_linker:
:executable: xc16-gcc
:arguments:
- -mcpu=24HJ128GP202
- ${1}
- -o "./build/release/TestBuild.out"
- -Wl,-Tp24HJ128GP202.gld,-Map=./build/release/TestOutput.map,--report-mem
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment