Skip to content

Commit

Permalink
Initial commit- Adding source code
Browse files Browse the repository at this point in the history
Signed-off-by: MPhalke <[email protected]>
  • Loading branch information
mhennerich authored and mphalke committed Mar 8, 2023
0 parents commit 077cd56
Show file tree
Hide file tree
Showing 371 changed files with 53,300 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .astyleignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
libraries/
tools/
16 changes: 16 additions & 0 deletions .cppcheckignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// This file contains the list of suppressions used by the cppcheck tool
//
// The surpression format:
// [error id]:[filename]
//
// Example where all the warnings under the "drivers" folder are suppressed:
// *:drivers/*
//
// Please use ".cppcheckignore" only for files/folders that are included
// as libraries/modules and are outside of the scope of this repository.
//
// Another alternative is using inline suppressions. Please see Cppcheck manual
// for further information: https://cppcheck.sourceforge.net/manual.pdf

*:libraries/*
*:tools/scripts/*
17 changes: 17 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
*.swp
*.profile*
mbed-os
libraries/precision-converters-library
libraries/no-OS
mbed_app_json
BUILD
Visual*
Code*
.gitattributes
.vs/
*.sln
*.vgdbproj
*.TMP
*.user
*.csv
.mbed
20 changes: 20 additions & 0 deletions .mbedignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
* Note: Comment out the project name to be compiled (one at a time)

//projects/ad7689_iio/
projects/ad4130_iio/
projects/ad717x_iio/
projects/ad4696_iio/
projects/ad7606_iio/
projects/ad77681_iio/
projects/ad738x_iio/
projects/ad7124_temperature-measure/
projects/ad7124_console/
projects/ad717x_console/
projects/nanodac_console/
projects/ltc268x_console/
projects/ad5770r_console/
projects/ad590_console/
projects/adt7420_console/
projects/ad559xr_console/
projects/ad5933_console/
projects/evb_discovery_firmware/
118 changes: 118 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
@Library(['jenkins_shared_lib','pcts_jenkins_shared_lib']) _

groovyScriptsList = []
projectsNameList = []

pipeline {
agent none
environment {
// Compiler type used is currently hard coded
TOOLCHAIN = "GCC_ARM"
// MBED_GCC_TOOLCHAIN_PATH is a global jenkins defined environment variable
TOOLCHAIN_PATH = "${MBED_GCC_TOOLCHAIN_PATH}"
}
options {
// This stops multiple copies of this job running, but not multiple parallel matrix builds
disableConcurrentBuilds()

// keeps some named stashes around so that pipeline stages can be restarted
preserveStashes(buildCount: 5)

// Set build log and artifact discarding policy
buildDiscarder(
logRotator(
// number of build logs to keep
numToKeepStr:'10',
// number of builds have their artifacts kept
artifactNumToKeepStr: '10'
)
)
}

stages {
stage("Load Build") { // Prepare/load build scripts
agent { label 'firmware_builder' }
steps {
script {
// Find the project changes
projectChanges = buildInfo.findProjectChanged()

// Get list of all the projects
def projectsList = []
def output = buildInfo.getProjectsList("${env.WORKSPACE}\\projects")
projectsList = output.tokenize('\n').collect() { it }

// Load project specific groovy scripts based on the project change
int cnt = 0
for (String projectName: projectsList) {
projectName = projectName.trim()
if (projectChanges.contains("$projectName") || projectChanges.contains("tools") || projectChanges.contains("Jenkinsfile") || env.BRANCH_NAME=="main" || env.BRANCH_NAME=="develop") {
groovyScriptsList[cnt] = load "projects\\$projectName\\ci_build.groovy"
projectsNameList[cnt] = projectName
cnt++
}
}
}
}
post {
cleanup {
cleanWs()
}
}
}

stage("Build and Test") { // Run build and test scripts
agent { label 'firmware_builder' }
steps {
script {
// Execute build and test job for each changed project
for (int cnt=0; cnt < groovyScriptsList.size(); cnt++) {
def buildStatus = groovyScriptsList[cnt].doBuild("${projectsNameList[cnt]}")
if (buildStatus != "Failed") {
groovyScriptsList[cnt].doTest("${projectsNameList[cnt]}")
}
}
}
}
post {
cleanup {
cleanWs()
}
}
}

stage('Check Licensing') { // Perform licensing scan
when {
expression { env.BRANCH_NAME == "main" || env.BRANCH_NAME == "develop" }
}
agent { label 'docker' }
steps {
script {
licensing.check()
}
}
}
}

post {
always {
// nothing to do
echo "always"
}
success {
// nothing to do
echo "success"
}
failure {
echo "failure"
}
unstable {
// nothing to do
echo "unstable"
}
changed {
// nothing to do
echo "changed"
}
}
}
26 changes: 26 additions & 0 deletions License.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Analog Devices, Inc. (�ADI�)
Source Code Software License Agreement
20190709-LWSC-CTSLA
BEFORE YOU SELECT THE "I ACCEPT" BUTTON AT THE BOTTOM OF THIS WINDOW, CAREFULLY READ THE TERMS AND CONDITIONS SET FORTH BELOW. BY SELECTING THE �I ACCEPT� BUTTON BELOW, OR DOWNLOADING, REPRODUCING, DISTRIBUTING OR OTHERWISE USING THE SOFTWARE, YOU AGREE TO BE BOUND BY THE TERMS AND CONDITIONS SET FORTH BELOW. IF YOU DO NOT AGREE TO ALL OF THE TERMS AND CONDITIONS, SELECT THE 'I DO NOT ACCEPT' BUTTON AND YOU MUST NOT DOWNLOAD, INSTALL OR OTHERWISE USE THE SOFTWARE.

DOWNLOADING, REPRODUCING, DISTRIBUTING OR OTHERWISE USING THE SOFTWARE CONSTITUTES ACCEPTANCE OF THIS LICENSE. THE SOFTWARE MAY NOT BE USED EXCEPT AS EXPRESSLY AUTHORIZED UNDER THIS LICENSE.

The software is protected by copyright law and international copyright treaties.

1. License: Subject to the terms and conditions of this license, the software may be reproduced, modified and distributed in source code and object code form.

2. Conditions:
(a) Any distribution of the software must include a complete copy of this license and retain all copyright and other proprietary notices. The software that is distributed (including modified versions of the software) shall be subject to the terms and conditions of this license.
(b) The software may not be combined or merged with other software in any manner that would cause the software to become subject to terms and conditions which differ from those of this license.
(c) The software is licensed solely and exclusively for use with processors manufactured by or for ADI.
(d) Licensee shall not use the name or any trademark of ADI (including those of its licensors) or any contributor to endorse or promote products without prior written consent of the owner of the name or trademark. The term �contributor� means any person or entity that modifies or distributes the software.
(e) Modified versions of the Software must be conspicuously marked as such.
(f) Use of the software may or may not infringe patent rights of one or more patent holders. This license does not alleviate the obligation to obtain separate licenses from patent holders to use the software.
(g) All rights not expressly granted hereunder are reserved.
(h) This license shall be governed by the laws of Massachusetts, without regard to its conflict of laws rules. The software shall only be used in compliance with all applicable laws and regulations, including without limitation export control laws.

3. WARRANTY DISCLAIMER: THE SOFTWARE AND ANY RELATED INFORMATION AND/OR ADVICE IS PROVIDED ON AN �AS IS� BASIS, WITHOUT REPRESENTATIONS, GUARANTEES OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, ORAL OR WRITTEN, INCLUDING WITHOUT LIMITATION, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. There is no obligation to provide software support or updates. The Software is not fault-tolerant and is not intended for use in high risk applications, including without limitation in the operation of nuclear facilities, aircraft navigation or control systems, air traffic control, life support machines, weapons systems, autonomous driving or other safety critical automotive applications, or any other application in which the failure of the software could lead to death, personal injury, or severe physical or environmental damages. The software is not authorized to be used under such circumstances.

4. LIMITATION OF LIABILITY: TO THE MAXIMUM EXTENT PERMITTED BY LAW ADI (INCLUDING ITS LICENSORS) AND CONTRIBUTORS SHALL NOT BE LIABLE FOR ANY DAMAGES ARISING FROM OR RELATED TO THE SOFTWARE, ITS USE OR ANY RELATED INFORMATION AND/OR SERVICES, INCLUDING BUT NOT LIMITED TO ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, EXEMPLARY, CONSEQUENTIAL OR ANALOGOUS DAMAGES (INCLUDING WITHOUT LIMITATION ANY DAMAGES RESULTING FROM LOSS OF USE, DATA, REVENUE, PROFITS, OR SAVINGS, COMPUTER DAMAGE OR ANY OTHER CAUSE), UNDER ANY LEGAL THEORY (INCLUDING WITHOUT LIMITATION CONTRACT, WARRANTY, TORT, NEGLIGENCE, STRICT OR PRODUCT LIABILITY), EVEN IF IT HAS BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. Some jurisdictions do not permit the exclusion or limitation of liability for consequential, incidental or other damages, and, as such, some portion of the above limitation may not apply. In such jurisdictions, liability is limited to the greatest extent permitted by law.
5. Third Party Software: The software may be accompanied by or include software made available by one or more third parties (�Third Party Software�). Each portion of Third Party Software is subject to its own separate software license terms and conditions (�Third Party Licenses�). The Third Party Licenses for Third Party Software delivered with the software are set forth or identified (by url or otherwise) in (i) Appendix A to this license (if any), (ii) the applicable software header or footer text, (iii) a text file located in the directory of the applicable Third Party Software component and/or (iv) such other location customarily used for licensing terms. The use of each portion of Third Party Software is subject to the Third Party Licenses, and you agree that your use of any Third Party Software is bound by the applicable Third Party License. You agree to review and comply with all applicable Third Party Licenses prior to any use or distribution of any Third Party Software. Third Party Software is provided on an �as is� basis without any representation, warranty or liability of any kind. ADI (including its licensors) and contributors shall have no liability or responsibility for the operation or performance of the Third Party Software and shall not be liable for any damages, costs, or expenses, direct or indirect, arising out of the performance or failure to perform of the Third Party Software. ADI (including its licensors) and contributors shall be entitled to the benefit of any and all limitations of liability and disclaimers of warranties contained in the Third Party Licenses. For the avoidance of doubt, this license does not alter, limit or expand the terms and conditions of, or rights granted to you pursuant to, Third Party Licenses.

26 changes: 26 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Precision Converters Firmware

[Analog Devices Inc.](http://www.analog.com/en/index.html) Precision Converters Firmware Applications

## About
This repository contains an embedded firmware applications for Analog Devices Precision Converters.
The firmware application are developed to interface with Precision Converters (ADCs/DACs) in order to configure/access device parameters \
and capture device data over serial communication link.
These applications are primarily targetted for Mbed (SDP-K1) platform, however they can be easily retargetted to other platforms as well \
(Reference: [Understanding No-OS and Platform Drivers](https://www.analog.com/en/analog-dialogue/articles/understanding-and-using-the-no-os-and-platform-drivers.html)

# Documentation
For more information about Precision Converters firmware projects, please visit our [wiki page](https://wiki.analog.com/resources/tools-software/product-support-software).

## Build
#### [Build Guide](https://wiki.analog.com/resources/tools-software/product-support-software/pcg-fw-mbed-build-guide)

## Code Style
When writing code, please follow the [style guidelines](https://github.com/analogdevicesinc/no-OS/wiki/Code-Style-guidelines).

## Which branch should I use?
* If you want to use the most stable code base, always use the latest release branch.
* If you want to use the greatest and latest, check out the 'main' branch.

## Support
Feel free to ask any question at [EngineerZone](https://ez.analog.com/data_converters)
38 changes: 38 additions & 0 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
trigger:
- main
- develop
- release/*

pr:
- main
- develop
- release/*

variables:
isMain: $[eq(variables['Build.SourceBranch'], 'refs/heads/main')]
runCondition: true
targetBranch: $[ variables['Build.SourceBranchName'] ]

jobs:
- job: LinuxBuilds
strategy:
matrix:
astyle:
imageName: 'ubuntu-latest'
BUILD_TYPE: astyle
TARGET_BRANCH: '$(targetBranch)'
cppcheck:
imageName: 'ubuntu-latest'
BUILD_TYPE: cppcheck
TARGET_BRANCH: '$(targetBranch)'
pool:
vmImage: $(imageName)
steps:
- checkout: self
condition: eq(variables.runCondition, true)
fetchDepth: 50
clean: true
persistCredentials: true
- script: ./CI/scripts/run_build.sh
condition: eq(variables.runCondition, true)
displayName: 'Run $(BUILD_TYPE)'
55 changes: 55 additions & 0 deletions libraries/.mbedignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
no-OS/ci/
no-OS/doc/
no-OS/iio/iio_app/
no-OS/drivers/accel/
no-OS/drivers/adc/adc_demo/
no-OS/drivers/adc/ad463x/
no-OS/drivers/adc/ad7616/
no-OS/drivers/adc/ad9083/
no-OS/drivers/adc/ad9265/
no-OS/drivers/adc/adaq7980/
no-OS/drivers/adc/adaq8092/
no-OS/drivers/adc/ad7768-1/
no-OS/drivers/adc/ad9680/
no-OS/drivers/afe/ad5940/
no-OS/drivers/axi_core/
no-OS/drivers/instr-amplif/
no-OS/drivers/dac/dac_demo/
no-OS/drivers/dac/ad3552r/
no-OS/drivers/dac/ad7293/
no-OS/drivers/dac/ad9144/
no-OS/drivers/dac/max538x/
no-OS/drivers/ecg/
no-OS/drivers/frequency/
no-OS/drivers/gyro/
no-OS/drivers/io-expander/
no-OS/drivers/mux/
no-OS/drivers/photo-electronic/
no-OS/drivers/platform/aducm3029/
no-OS/drivers/platform/altera/
no-OS/drivers/platform/generic/
no-OS/drivers/platform/linux/
no-OS/drivers/platform/maxim/
no-OS/drivers/platform/stm32/
no-OS/drivers/platform/xilinx/
no-OS/drivers/platform/pico/
no-OS/drivers/potentiometer/
no-OS/drivers/rf-transceiver/
no-OS/drivers/sd-card/
no-OS/drivers/temperature/max31855/
no-OS/drivers/temperature/max31875/
no-OS/drivers/temperature/max31865pmb1/
no-OS/drivers/display/
no-OS/drivers/filter/
no-OS/drivers/switch/
no-OS/drivers/tdm/
no-OS/legacy/
no-OS/libraries/fatfs/
no-OS/libraries/mbedtls/
no-OS/libraries/mqtt/
no-OS/network/
no-OS/projects/
no-OS/scripts/
no-OS/tools/
no-OS/v4l2_config/
no-OS/jesd204/
1 change: 1 addition & 0 deletions libraries/no-OS.lib
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://github.com/analogdevicesinc/no-OS/#37f63b4e3a20688fc2ba5c9727fcc75c093f2597
1 change: 1 addition & 0 deletions libraries/precision-converters-library.lib
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://github.com/analogdevicesinc/precision-converters-library/#8eff47b095ac23e97f97f79cc987a29288d6781a
1 change: 1 addition & 0 deletions mbed-os.lib
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://github.com/ARMmbed/mbed-os/#54e8693ef4ff7e025018094f290a1d5cf380941f
22 changes: 22 additions & 0 deletions mbed_app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"config": {
"usb_speed": {
"help": "USE_USB_OTG_FS or USE_USB_OTG_HS or USE_USB_HS_IN_FS",
"value": "USE_USB_OTG_HS"
}
},
"requires": ["bare-metal", "drivers-usb", "events"],
"macros": [
"NO_OS_VERSION=0.1",
"_USE_STD_INT_TYPES",
"IIO_IGNORE_BUFF_OVERRUN_ERR",
"USE_STANDARD_SPI"
],
"target_overrides": {
"*": {
"platform.default-serial-baud-rate": 230400,
"target.printf_lib": "std",
"target.device_has_remove": ["CAN"]
}
}
}
12 changes: 12 additions & 0 deletions projects/ad4130_iio/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
*.swp
*.profile*
build
app/no-OS
Visual*
Code*
.gitattributes
.vs/
*.sln
*.vgdbproj
*.TMP
*.user
Loading

0 comments on commit 077cd56

Please sign in to comment.