MICROCHIP PIC24 support and example project

This commit is contained in:
Lealem Amedie
2024-01-29 12:50:00 -07:00
parent d043333bee
commit 154841a083
17 changed files with 1451 additions and 2 deletions

6
.gitignore vendored
View File

@ -406,6 +406,12 @@ user_settings_asm.h
/IDE/Espressif/**/sdkconfig
/IDE/Espressif/**/sdkconfig.old
# MPLAB
/IDE/MPLABX16/wolfssl.X/dist/default/
/IDE/MPLABX16/wolfssl.X/.generated_files
/IDE/MPLABX16/wolfcrypt_test.X/dist/default/
/IDE/MPLABX16/wolfcrypt_test.X/.generated_files
# auto-created CMake backups
**/CMakeLists.txt.old

62
IDE/MPLABX16/README.md Normal file
View File

@ -0,0 +1,62 @@
# wolfSSL MPLAB X Project Files for XC16
This directory contains project files for the Microchip MPLAB X IDE. These
projects have been set up to use the Microchip PIC24 Starter Kit
and the Microchip XC16 compiler.
In order to generate the necessary auto-generated MPLAB X files, make sure
to import the wolfssl.X project into your MPLAB X workspace before trying to
build the wolfCrypt test. This will correctly set up the respective project's
Makefiles.
## Included Project Files
### wolfSSL library (wolfssl.X)
This project builds a static wolfSSL library. The settings for this project are in `user_settings.h`:
```
<wolfssl_root>/IDE/MPLABX16/user_settings.h
```
After this project has been built, the compiled library will be located at:
```
<wolfssl_root>/IDE/MPLABX16/wolfssl.X/dist/default/production/wolfssl.X.a
```
### wolfCrypt Test App (wolfcrypt_test.X)
This project tests the wolfCrypt cryptography modules. It is generally a good
idea to run this first on an embedded system after compiling wolfSSL in order
to verify all underlying crypto is working correctly. This project depends on
files generated by Microchip's MCC tool to view the UART output. Follow the
steps below to generate that code.
## Generating MCC UART code
1. Open the MPLAB Code Configurator application.
2. Set the Project path to the wolfSSL/IDE/MPLABX16 and enter your PIC device
into the interface.
3. Select MCC Clasic as the content type and click `Finish`.
4. Under the Device Resources section, find the UART entry and add the UART1
peripheral.
5. Note the UART settings and check the `Enable UART Interrupts` and
`Redirect Printf to UART` boxes.
6. Click the `Generate` button.
**Note** : If using an older version of `xc16`, you may have to add the
following to `user_settings.h`.
```
#define WOLFSSL_HAVE_MIN
#define WOLFSSL_HAVE_MAX
```
## Support
Please send questions or comments to support@wolfssl.com

8
IDE/MPLABX16/include.am Normal file
View File

@ -0,0 +1,8 @@
# vim:ft=automake
# All paths should be given relative to the root
#
EXTRA_DIST += \
IDE/MPLABX16/README.md \
IDE/MPLABX16/main.c \
IDE/MPLABX16/user_settings.h

39
IDE/MPLABX16/main.c Normal file
View File

@ -0,0 +1,39 @@
/* main.c
*
* Copyright (C) 2006-2024 wolfSSL Inc.
*
* This file is part of wolfSSL.
*
* wolfSSL is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* wolfSSL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
*/
#include <stdio.h>
#include <wolfssl/wolfcrypt/settings.h>
#include <wolfcrypt/test/test.h>
#include <stdlib.h>
#include "xc.h"
#include "mcc_generated_files/mcc.h"
int main(void) {
SYSTEM_Initialize();
wolfcrypt_test(NULL);
return 0;
}

View File

@ -0,0 +1,414 @@
/* Example custom user settings for wolfSSL */
#ifndef WOLFSSL_USER_SETTINGS_H
#define WOLFSSL_USER_SETTINGS_H
#ifdef __cplusplus
extern "C" {
#endif
/* ------------------------------------------------------------------------- */
/* Platform */
/* ------------------------------------------------------------------------- */
#undef WOLFSSL_GENERAL_ALIGNMENT
#define WOLFSSL_GENERAL_ALIGNMENT 4
#undef SINGLE_THREADED
#define SINGLE_THREADED
#undef WOLFSSL_SMALL_STACK
#define WOLFSSL_SMALL_STACK
#define MICROCHIP_PIC24
/* Define for older versions of xc16 */
#if 0
#define WOLFSSL_HAVE_MIN
#define WOLFSSL_HAVE_MAX
#endif
#ifdef MICROCHIP_PIC24
#define SIZEOF_LONG_LONG 8
#define SIZEOF_LONG 4
#define SINGLE_THREADED
#define WOLFSSL_USER_IO
#define NO_WRITEV
#define NO_DEV_RANDOM
#define NO_FILESYSTEM
#define BENCH_EMBEDDED
#define WC_16BIT_CPU
#define WORD64_AVAILABLE
#define WOLFSSL_GENSEED_FORTEST
#endif
/* ------------------------------------------------------------------------- */
/* Math Configuration */
/* ------------------------------------------------------------------------- */
#if 1
#undef USE_FAST_MATH
#define USE_FAST_MATH
#undef FP_MAX_BITS
#define FP_MAX_BITS 2048
#else
#define WOLFSSL_SP_MATH
#define WOLFSSL_SP_SMALL
#define WOLFSSL_SP_MATH_ALL
#define SP_INT_BITS 256
#endif
#ifdef USE_FAST_MATH
#undef TFM_TIMING_RESISTANT
#define TFM_TIMING_RESISTANT
/* Optimizations */
//#define TFM_MIPS
#endif
/* ------------------------------------------------------------------------- */
/* Crypto */
/* ------------------------------------------------------------------------- */
/* ECC */
#if 1
#undef HAVE_ECC
#define HAVE_ECC
/* Manually define enabled curves */
#undef ECC_USER_CURVES
#define ECC_USER_CURVES
/* Reduces heap usage, but slower */
#undef ECC_TIMING_RESISTANT
#define ECC_TIMING_RESISTANT
//#define HAVE_ECC192
//#define HAVE_ECC224
//#define HAVE_ECC384
/* Fixed point cache (speeds repeated operations against same private key) */
#if 1
#undef FP_ECC
#define FP_ECC
#ifdef FP_ECC
/* Bits / Entries */
#undef FP_ENTRIES
#define FP_ENTRIES 2
#undef FP_LUT
#define FP_LUT 4
#endif
/* Optional ECC calculation method */
/* Note: doubles heap usage, but slightly faster */
#undef ECC_SHAMIR
#define ECC_SHAMIR
#ifdef USE_FAST_MATH
/* use reduced size math buffers for ecc points */
#undef ALT_ECC_SIZE
#define ALT_ECC_SIZE
/* Enable TFM optimizations for ECC */
#if defined(HAVE_ECC192) || defined(HAVE_ALL_CURVES)
#define TFM_ECC192
#endif
#if defined(HAVE_ECC224) || defined(HAVE_ALL_CURVES)
#define TFM_ECC224
#endif
#if !defined(NO_ECC256) || defined(HAVE_ALL_CURVES)
#define TFM_ECC256
#endif
#if defined(HAVE_ECC384) || defined(HAVE_ALL_CURVES)
#define TFM_ECC384
#endif
#if defined(HAVE_ECC521) || defined(HAVE_ALL_CURVES)
#define TFM_ECC521
#endif
#endif
#endif
#endif
/* RSA */
#undef NO_RSA
#if 0
/* half as much memory but twice as slow */
#undef RSA_LOW_MEM
#define RSA_LOW_MEM
#undef WC_RSA_PSS
#define WC_RSA_PSS
/* timing resistance */
#undef WC_RSA_BLINDING
#define WC_RSA_BLINDING
#else
#define NO_RSA
#endif
/* AES */
#undef NO_AES
#if 1
#undef HAVE_AES_DECRYPT
#define HAVE_AES_DECRYPT
#undef HAVE_AESGCM
#define HAVE_AESGCM
/* GCM Method: GCM_SMALL, GCM_WORD32 or GCM_TABLE */
#undef GCM_SMALL
#define GCM_SMALL
/* #undef HAVE_AESCCM
#define HAVE_AESCCM */
/* #undef WOLFSSL_AES_DIRECT
#define WOLFSSL_AES_DIRECT */
#undef NO_AES_CBC
#define NO_AES_CBC
#else
#define NO_AES
#endif
/* DES3 */
#undef NO_DES3
#if 0
#undef WOLFSSL_DES_ECB
#define WOLFSSL_DES_ECB
#else
#define NO_DES3
#endif
/* ChaCha20 / Poly1305 */
#undef HAVE_CHACHA
#undef HAVE_POLY1305
#if 0
#define HAVE_CHACHA
#define HAVE_POLY1305
/* Needed for Poly1305 */
#undef HAVE_ONE_TIME_AUTH
#define HAVE_ONE_TIME_AUTH
#endif
/* Ed25519 / Curve25519 */
#undef HAVE_CURVE25519
#undef HAVE_ED25519
#if 0
#define HAVE_CURVE25519
#define HAVE_ED25519
/* Optionally use small math (less flash usage, but much slower) */
#if 0
#define CURVED25519_SMALL
#endif
#endif
/* ------------------------------------------------------------------------- */
/* Hashing */
/* ------------------------------------------------------------------------- */
/* Sha */
#undef NO_SHA
#if 0
/* 1k smaller, but 25% slower */
#define USE_SLOW_SHA
#else
#define NO_SHA
#endif
/* Sha256 */
#undef NO_SHA256
#if 1
#else
#define NO_SHA256
#endif
/* Sha512 */
#undef WOLFSSL_SHA512
#if 0
#define WOLFSSL_SHA512
/* Sha384 */
#undef WOLFSSL_SHA384
#if 0
#define WOLFSSL_SHA384
#endif
/* over twice as small, but 50% slower */
#define USE_SLOW_SHA2
#endif
/* ------------------------------------------------------------------------- */
/* Benchmark / Test */
/* ------------------------------------------------------------------------- */
/* Use reduced benchmark / test sizes */
#undef BENCH_EMBEDDED
#define BENCH_EMBEDDED
//#undef USE_CERT_BUFFERS_2048
//#define USE_CERT_BUFFERS_2048
#undef USE_CERT_BUFFERS_1024
#define USE_CERT_BUFFERS_1024
#undef USE_CERT_BUFFERS_256
#define USE_CERT_BUFFERS_256
/* ------------------------------------------------------------------------- */
/* Time */
/* ------------------------------------------------------------------------- */
#if 0
/* Override Current Time */
/* Allows custom "custom_time()" function to be used for benchmark */
#define WOLFSSL_USER_CURRTIME
#define USER_TICKS
extern unsigned long custom_time(unsigned long* timer);
#define XTIME custom_time
#else
//#warning Time/RTC disabled
#undef NO_ASN_TIME
#define NO_ASN_TIME
#endif
/* ------------------------------------------------------------------------- */
/* Debugging */
/* ------------------------------------------------------------------------- */
#undef DEBUG_WOLFSSL
#if 0
#define DEBUG_WOLFSSL
#define WOLFSSL_DEBUG_TLS
/* Use this to measure / print heap usage */
#undef USE_WOLFSSL_MEMORY
#define USE_WOLFSSL_MEMORY
#undef WOLFSSL_TRACK_MEMORY
#define WOLFSSL_TRACK_MEMORY
#else
#undef NO_WOLFSSL_MEMORY
#define NO_WOLFSSL_MEMORY
#endif
/* ------------------------------------------------------------------------- */
/* Misc */
/* ------------------------------------------------------------------------- */
#define WOLFSSL_ASN_TEMPLATE
#define NO_ERROR_STRINGS
#define NO_LARGE_HASH_TEST
#define NO_PKCS12
#define NO_PKCS8
#define WOLFSSL_NO_PEM
/* ------------------------------------------------------------------------- */
/* Enable Features */
/* ------------------------------------------------------------------------- */
#undef KEEP_PEER_CERT
#define KEEP_PEER_CERT
#undef HAVE_COMP_KEY
#define HAVE_COMP_KEY
#undef WOLFSSL_TLS13
#define WOLFSSL_TLS13
#undef HAVE_HKDF
#define HAVE_HKDF
#undef HAVE_TLS_EXTENSIONS
#define HAVE_TLS_EXTENSIONS
#ifdef HAVE_ECC
#undef HAVE_SUPPORTED_CURVES
#define HAVE_SUPPORTED_CURVES
#endif
#undef WOLFSSL_BASE64_ENCODE
#define WOLFSSL_BASE64_ENCODE
/* TLS Session Cache */
#if 0
#define SMALL_SESSION_CACHE
#else
#define NO_SESSION_CACHE
#endif
/* ------------------------------------------------------------------------- */
/* Disable Features */
/* ------------------------------------------------------------------------- */
#undef NO_WOLFSSL_SERVER
//#define NO_WOLFSSL_SERVER
#undef NO_WOLFSSL_CLIENT
#define NO_WOLFSSL_CLIENT
#undef NO_CRYPT_TEST
//#define NO_CRYPT_TEST
#undef NO_CRYPT_BENCHMARK
//#define NO_CRYPT_BENCHMARK
/* In-lining of misc.c functions */
/* If defined, must include wolfcrypt/src/misc.c in build */
/* Slower, but about 1k smaller */
#undef NO_INLINE
#define NO_INLINE
#undef NO_FILESYSTEM
#define NO_FILESYSTEM
#undef NO_WRITEV
#define NO_WRITEV
#undef NO_MAIN_DRIVER
#define NO_MAIN_DRIVER
#undef NO_DEV_RANDOM
#define NO_DEV_RANDOM
#undef NO_PSK
#define NO_PSK
#undef NO_DSA
#define NO_DSA
#undef NO_DH
#define NO_DH
#undef NO_RC4
#define NO_RC4
#undef NO_OLD_TLS
#define NO_OLD_TLS
#undef WOLFSSL_NO_TLS12
#define WOLFSSL_NO_TLS12
#undef NO_PSK
//#define NO_PSK
#define WOLFSSL_STATIC_PSK
#undef NO_MD4
#define NO_MD4
#undef NO_PWDBASED
#define NO_PWDBASED
#undef NO_MD5
#define NO_MD5
#undef NO_DES3
#define NO_DES3
#undef NO_CODING
//#define NO_CODING
#ifdef __cplusplus
}
#endif
#endif /* WOLFSSL_USER_SETTINGS_H */

View File

@ -0,0 +1,113 @@
#
# There exist several targets which are by default empty and which can be
# used for execution of your targets. These targets are usually executed
# before and after some main targets. They are:
#
# .build-pre: called before 'build' target
# .build-post: called after 'build' target
# .clean-pre: called before 'clean' target
# .clean-post: called after 'clean' target
# .clobber-pre: called before 'clobber' target
# .clobber-post: called after 'clobber' target
# .all-pre: called before 'all' target
# .all-post: called after 'all' target
# .help-pre: called before 'help' target
# .help-post: called after 'help' target
#
# Targets beginning with '.' are not intended to be called on their own.
#
# Main targets can be executed directly, and they are:
#
# build build a specific configuration
# clean remove built files from a configuration
# clobber remove all built files
# all build all configurations
# help print help mesage
#
# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
# .help-impl are implemented in nbproject/makefile-impl.mk.
#
# Available make variables:
#
# CND_BASEDIR base directory for relative paths
# CND_DISTDIR default top distribution directory (build artifacts)
# CND_BUILDDIR default top build directory (object files, ...)
# CONF name of current configuration
# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
#
# NOCDDL
# Environment
MKDIR=mkdir
CP=cp
CCADMIN=CCadmin
RANLIB=ranlib
# build
build: .build-post
.build-pre:
# Add your pre 'build' code here...
.build-post: .build-impl
# Add your post 'build' code here...
# clean
clean: .clean-post
.clean-pre:
# Add your pre 'clean' code here...
# WARNING: the IDE does not call this target since it takes a long time to
# simply run make. Instead, the IDE removes the configuration directories
# under build and dist directly without calling make.
# This target is left here so people can do a clean when running a clean
# outside the IDE.
.clean-post: .clean-impl
# Add your post 'clean' code here...
# clobber
clobber: .clobber-post
.clobber-pre:
# Add your pre 'clobber' code here...
.clobber-post: .clobber-impl
# Add your post 'clobber' code here...
# all
all: .all-post
.all-pre:
# Add your pre 'all' code here...
.all-post: .all-impl
# Add your post 'all' code here...
# help
help: .help-post
.help-pre:
# Add your pre 'help' code here...
.help-post: .help-impl
# Add your post 'help' code here...
# include project implementation makefile
include nbproject/Makefile-impl.mk
# include project make variables
include nbproject/Makefile-variables.mk

View File

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="65">
<logicalFolder name="root" displayName="root" projectFiles="true">
<logicalFolder name="HeaderFiles"
displayName="Header Files"
projectFiles="true">
<itemPath>../user_settings.h</itemPath>
</logicalFolder>
<logicalFolder name="LinkerScript"
displayName="Linker Files"
projectFiles="true">
</logicalFolder>
<logicalFolder name="SourceFiles"
displayName="Source Files"
projectFiles="true">
<logicalFolder name="f1" displayName="mcc_generated_files" projectFiles="true">
<itemPath>../mcc_generated_files/clock.c</itemPath>
<itemPath>../mcc_generated_files/interrupt_manager.c</itemPath>
<itemPath>../mcc_generated_files/mcc.c</itemPath>
<itemPath>../mcc_generated_files/pin_manager.c</itemPath>
<itemPath>../mcc_generated_files/system.c</itemPath>
<itemPath>../mcc_generated_files/traps.c</itemPath>
<itemPath>../mcc_generated_files/uart1.c</itemPath>
</logicalFolder>
<itemPath>../../../wolfcrypt/test/test.c</itemPath>
<itemPath>../main.c</itemPath>
</logicalFolder>
<logicalFolder name="ExternalFiles"
displayName="Important Files"
projectFiles="false">
<itemPath>Makefile</itemPath>
</logicalFolder>
</logicalFolder>
<sourceRootList>
<Elem>..</Elem>
<Elem>../../wolfcrypt/test</Elem>
<Elem>../../../wolfcrypt/test</Elem>
</sourceRootList>
<projectmakefile>Makefile</projectmakefile>
<confs>
<conf name="default" type="2">
<toolsSet>
<developmentServer>localhost</developmentServer>
<targetDevice>PIC24FJ1024GB610</targetDevice>
<targetHeader></targetHeader>
<targetPluginBoard></targetPluginBoard>
<platformTool>PKOBSKDEPlatformTool</platformTool>
<languageToolchain>XC16</languageToolchain>
<languageToolchainVersion>2.10</languageToolchainVersion>
<platform>4</platform>
</toolsSet>
<packs>
<pack name="PIC24F-GA-GB_DFP" vendor="Microchip" version="1.4.141"/>
</packs>
<ScriptingSettings>
</ScriptingSettings>
<compileType>
<linkerTool>
<linkerLibItems>
<linkerLibProjectItem>
<makeArtifact PL="../wolfssl.X"
CT="3"
CN="default"
AC="true"
BL="true"
WD="../wolfssl.X"
BC="${MAKE} -f Makefile CONF=default"
DBC="${MAKE} -f Makefile CONF=default TYPE_IMAGE=DEBUG_RUN"
CC="rm -rf &quot;build/default&quot; &quot;dist/default&quot;"
OP="dist/default/production/wolfssl.X.a"
DOP="dist/default/debug/wolfssl.X.a"
FL="dist/default/production/wolfssl.X.a"
PD="dist/default/production/wolfssl.X."
DD="dist/default/debug/wolfssl.X.">
</makeArtifact>
</linkerLibProjectItem>
</linkerLibItems>
</linkerTool>
<archiverTool>
</archiverTool>
<loading>
<useAlternateLoadableFile>false</useAlternateLoadableFile>
<parseOnProdLoad>true</parseOnProdLoad>
<alternateLoadableFile></alternateLoadableFile>
</loading>
<subordinates>
</subordinates>
</compileType>
<makeCustomizationType>
<makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
<makeUseCleanTarget>false</makeUseCleanTarget>
<makeCustomizationPreStep></makeCustomizationPreStep>
<makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>
<makeCustomizationPostStep></makeCustomizationPostStep>
<makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>
<makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>
<makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
</makeCustomizationType>
<C30>
<property key="code-model" value="large-code"/>
<property key="const-model" value="default"/>
<property key="data-model" value="default"/>
<property key="disable-instruction-scheduling" value="false"/>
<property key="enable-all-warnings" value="true"/>
<property key="enable-ansi-std" value="false"/>
<property key="enable-ansi-warnings" value="false"/>
<property key="enable-fatal-warnings" value="false"/>
<property key="enable-large-arrays" value="false"/>
<property key="enable-omit-frame-pointer" value="false"/>
<property key="enable-procedural-abstraction" value="false"/>
<property key="enable-short-double" value="false"/>
<property key="enable-symbols" value="true"/>
<property key="enable-unroll-loops" value="false"/>
<property key="expand-pragma-config" value="false"/>
<property key="extra-include-directories" value="../;../../.."/>
<property key="isolate-each-function" value="false"/>
<property key="keep-inline" value="false"/>
<property key="oXC16gcc-align-arr" value="false"/>
<property key="oXC16gcc-cnsts-mauxflash" value="false"/>
<property key="oXC16gcc-data-sects" value="false"/>
<property key="oXC16gcc-errata" value=""/>
<property key="oXC16gcc-fillupper" value=""/>
<property key="oXC16gcc-large-aggregate" value="false"/>
<property key="oXC16gcc-mauxflash" value="false"/>
<property key="oXC16gcc-mpa-lvl" value=""/>
<property key="oXC16gcc-name-text-sec" value=""/>
<property key="oXC16gcc-near-chars" value="false"/>
<property key="oXC16gcc-no-isr-warn" value="false"/>
<property key="oXC16gcc-sfr-warn" value="false"/>
<property key="oXC16gcc-smar-io-lvl" value="1"/>
<property key="oXC16gcc-smart-io-fmt" value=""/>
<property key="optimization-level" value="2"/>
<property key="post-instruction-scheduling" value="default"/>
<property key="pre-instruction-scheduling" value="default"/>
<property key="preprocessor-macros" value="WOLFSSL_USER_SETTINGS"/>
<property key="scalar-model" value="default"/>
<property key="use-cci" value="false"/>
<property key="use-iar" value="false"/>
</C30>
<C30-AR>
<property key="additional-options-chop-files" value="false"/>
</C30-AR>
<C30-AS>
<property key="assembler-symbols" value=""/>
<property key="expand-macros" value="false"/>
<property key="extra-include-directories-for-assembler" value=""/>
<property key="extra-include-directories-for-preprocessor" value=""/>
<property key="false-conditionals" value="false"/>
<property key="keep-locals" value="false"/>
<property key="list-assembly" value="false"/>
<property key="list-section-info" value="false"/>
<property key="list-source" value="false"/>
<property key="list-symbols" value="false"/>
<property key="oXC16asm-extra-opts" value=""/>
<property key="oXC16asm-list-to-file" value="false"/>
<property key="omit-debug-dirs" value="false"/>
<property key="omit-forms" value="false"/>
<property key="preprocessor-macros" value=""/>
<property key="relax" value="false"/>
<property key="warning-level" value="emit-warnings"/>
</C30-AS>
<C30-CO>
<property key="coverage-enable" value=""/>
<property key="stack-guidance" value="false"/>
</C30-CO>
<C30-LD>
<property key="additional-options-use-response-files" value="false"/>
<property key="boot-eeprom" value="no_eeprom"/>
<property key="boot-flash" value="no_flash"/>
<property key="boot-ram" value="no_ram"/>
<property key="boot-write-protect" value="no_write_protect"/>
<property key="enable-check-sections" value="true"/>
<property key="enable-data-init" value="true"/>
<property key="enable-default-isr" value="true"/>
<property key="enable-handles" value="true"/>
<property key="enable-pack-data" value="true"/>
<property key="extra-lib-directories" value=""/>
<property key="fill-flash-options-addr" value=""/>
<property key="fill-flash-options-const" value=""/>
<property key="fill-flash-options-how" value="0"/>
<property key="fill-flash-options-inc-const" value="1"/>
<property key="fill-flash-options-increment" value=""/>
<property key="fill-flash-options-seq" value=""/>
<property key="fill-flash-options-what" value="0"/>
<property key="general-code-protect" value="no_code_protect"/>
<property key="general-write-protect" value="no_write_protect"/>
<property key="generate-cross-reference-file" value="false"/>
<property key="heap-size" value=""/>
<property key="input-libraries" value=""/>
<property key="linker-stack" value="true"/>
<property key="linker-symbols" value=""/>
<property key="map-file" value="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map"/>
<property key="no-ivt" value="false"/>
<property key="oXC16ld-extra-opts" value=""/>
<property key="oXC16ld-fill-upper" value="0"/>
<property key="oXC16ld-force-link" value="false"/>
<property key="oXC16ld-no-smart-io" value="false"/>
<property key="oXC16ld-nostdlib" value="false"/>
<property key="oXC16ld-stackguard" value="16"/>
<property key="preprocessor-macros" value=""/>
<property key="remove-unused-sections" value="true"/>
<property key="report-memory-usage" value="true"/>
<property key="secure-eeprom" value="no_eeprom"/>
<property key="secure-flash" value="no_flash"/>
<property key="secure-ram" value="no_ram"/>
<property key="secure-write-protect" value="no_write_protect"/>
<property key="stack-size" value="16"/>
<property key="symbol-stripping" value=""/>
<property key="trace-symbols" value=""/>
<property key="warn-section-align" value="false"/>
</C30-LD>
<C30Global>
<property key="common-include-directories" value=""/>
<property key="dual-boot-partition" value="0"/>
<property key="fast-math" value="false"/>
<property key="generic-16-bit" value="false"/>
<property key="legacy-libc" value="true"/>
<property key="mpreserve-all" value="false"/>
<property key="oXC16glb-macros" value=""/>
<property key="omit-pack-options" value="1"/>
<property key="output-file-format" value="elf"/>
<property key="preserve-all" value="false"/>
<property key="preserve-file" value=""/>
<property key="relaxed-math" value="false"/>
<property key="save-temps" value="false"/>
</C30Global>
<PKOBSKDEPlatformTool>
<property key="AutoSelectMemRanges" value="auto"/>
<property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
<property key="ToolFirmwareFilePath"
value="Press to browse for a specific firmware version"/>
<property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>
<property key="memories.configurationmemory" value="true"/>
<property key="memories.dataflash" value="true"/>
<property key="memories.eeprom" value="true"/>
<property key="memories.id" value="true"/>
<property key="memories.programmemory" value="true"/>
<property key="memories.programmemory.ranges" value="1d000000-1d07ffff"/>
<property key="memories.userotp" value="true"/>
<property key="programoptions.donoteraseauxmem" value="false"/>
<property key="programoptions.eraseb4program" value="true"/>
<property key="programoptions.preservedataflash" value="false"/>
<property key="programoptions.preservedataflash.ranges" value=""/>
<property key="programoptions.preserveeeprom" value="false"/>
<property key="programoptions.preserveeeprom.ranges"
value="${memories.eedata.default}"/>
<property key="programoptions.preserveprogram.ranges" value=""/>
<property key="programoptions.preserveprogramrange" value="false"/>
<property key="programoptions.usehighvoltageonmclr" value="false"/>
<property key="programoptions.uselvpprogramming" value="false"/>
</PKOBSKDEPlatformTool>
<Tool>
<property key="AutoSelectMemRanges" value="auto"/>
<property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
<property key="ToolFirmwareFilePath"
value="Press to browse for a specific firmware version"/>
<property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>
<property key="memories.configurationmemory" value="true"/>
<property key="memories.dataflash" value="true"/>
<property key="memories.eeprom" value="true"/>
<property key="memories.id" value="true"/>
<property key="memories.programmemory" value="true"/>
<property key="memories.programmemory.end" value="0x1d07ffff"/>
<property key="memories.programmemory.ranges" value="1d000000-1d07ffff"/>
<property key="memories.programmemory.start" value="0x1d000000"/>
<property key="memories.userotp" value="true"/>
<property key="poweroptions.powerenable" value="false"/>
<property key="programoptions.donoteraseauxmem" value="false"/>
<property key="programoptions.eraseb4program" value="true"/>
<property key="programoptions.preservedataflash" value="false"/>
<property key="programoptions.preservedataflash.ranges" value=""/>
<property key="programoptions.preserveeeprom" value="false"/>
<property key="programoptions.preserveeeprom.ranges"
value="${memories.eedata.default}"/>
<property key="programoptions.preserveprogram.ranges" value=""/>
<property key="programoptions.preserveprogramrange" value="false"/>
<property key="programoptions.preserveprogramrange.end" value="0x1d0001ff"/>
<property key="programoptions.preserveprogramrange.start" value="0x1d000000"/>
<property key="programoptions.usehighvoltageonmclr" value="false"/>
<property key="programoptions.uselvpprogramming" value="false"/>
<property key="voltagevalue" value="3.25"/>
</Tool>
</conf>
</confs>
</configurationDescriptor>

View File

@ -0,0 +1,8 @@
j vim:ft=automake
# All paths should be given relative to the root
#
EXTRA_DIST += \
IDE/MPLABX16/wolfcrypt_test.X/nbproject/configurations.xml \
IDE/MPLABX16/wolfcrypt_test.X/nbproject/project.xml

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="65">
<projectmakefile>Makefile</projectmakefile>
<defaultConf>0</defaultConf>
<confs>
<conf name="default" type="2">
<platformToolSN></platformToolSN>
<languageToolchainDir>/Applications/microchip/xc16/v2.10/bin</languageToolchainDir>
<mdbdebugger version="1">
<placeholder1>place holder 1</placeholder1>
<placeholder2>place holder 2</placeholder2>
</mdbdebugger>
<runprofile version="6">
<args></args>
<rundir></rundir>
<buildfirst>true</buildfirst>
<console-type>0</console-type>
<terminal-type>0</terminal-type>
<remove-instrumentation>0</remove-instrumentation>
<environment>
</environment>
</runprofile>
</conf>
</confs>
</configurationDescriptor>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group/>
</open-files>
</project-private>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>com.microchip.mplab.nbide.embedded.makeproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/make-project/1">
<name>wolfcrypt_test</name>
<creation-uuid>b34c4937-7042-4352-88b1-7717bcdf8aeb</creation-uuid>
<make-project-type>0</make-project-type>
<c-extensions>c</c-extensions>
<cpp-extensions/>
<header-extensions>h</header-extensions>
<sourceEncoding>ISO-8859-1</sourceEncoding>
<asminc-extensions/>
<make-dep-projects>
<make-dep-project>../wolfssl.X</make-dep-project>
</make-dep-projects>
<sourceRootList>
<sourceRootElem>..</sourceRootElem>
<sourceRootElem>../../wolfcrypt/test</sourceRootElem>
<sourceRootElem>../../../wolfcrypt/test</sourceRootElem>
</sourceRootList>
<confList>
<confElem>
<name>default</name>
<type>2</type>
</confElem>
</confList>
<formatting>
<project-formatting-style>false</project-formatting-style>
</formatting>
</data>
</configuration>
</project>

View File

@ -0,0 +1,113 @@
#
# There exist several targets which are by default empty and which can be
# used for execution of your targets. These targets are usually executed
# before and after some main targets. They are:
#
# .build-pre: called before 'build' target
# .build-post: called after 'build' target
# .clean-pre: called before 'clean' target
# .clean-post: called after 'clean' target
# .clobber-pre: called before 'clobber' target
# .clobber-post: called after 'clobber' target
# .all-pre: called before 'all' target
# .all-post: called after 'all' target
# .help-pre: called before 'help' target
# .help-post: called after 'help' target
#
# Targets beginning with '.' are not intended to be called on their own.
#
# Main targets can be executed directly, and they are:
#
# build build a specific configuration
# clean remove built files from a configuration
# clobber remove all built files
# all build all configurations
# help print help mesage
#
# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
# .help-impl are implemented in nbproject/makefile-impl.mk.
#
# Available make variables:
#
# CND_BASEDIR base directory for relative paths
# CND_DISTDIR default top distribution directory (build artifacts)
# CND_BUILDDIR default top build directory (object files, ...)
# CONF name of current configuration
# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
#
# NOCDDL
# Environment
MKDIR=mkdir
CP=cp
CCADMIN=CCadmin
RANLIB=ranlib
# build
build: .build-post
.build-pre:
# Add your pre 'build' code here...
.build-post: .build-impl
# Add your post 'build' code here...
# clean
clean: .clean-post
.clean-pre:
# Add your pre 'clean' code here...
# WARNING: the IDE does not call this target since it takes a long time to
# simply run make. Instead, the IDE removes the configuration directories
# under build and dist directly without calling make.
# This target is left here so people can do a clean when running a clean
# outside the IDE.
.clean-post: .clean-impl
# Add your post 'clean' code here...
# clobber
clobber: .clobber-post
.clobber-pre:
# Add your pre 'clobber' code here...
.clobber-post: .clobber-impl
# Add your post 'clobber' code here...
# all
all: .all-post
.all-pre:
# Add your pre 'all' code here...
.all-post: .all-impl
# Add your post 'all' code here...
# help
help: .help-post
.help-pre:
# Add your pre 'help' code here...
.help-post: .help-impl
# Add your post 'help' code here...
# include project implementation makefile
include nbproject/Makefile-impl.mk
# include project make variables
include nbproject/Makefile-variables.mk

View File

@ -0,0 +1,290 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="65">
<logicalFolder name="root" displayName="root" projectFiles="true">
<logicalFolder name="HeaderFiles"
displayName="Header Files"
projectFiles="true">
<itemPath>../user_settings.h</itemPath>
</logicalFolder>
<logicalFolder name="LinkerScript"
displayName="Linker Files"
projectFiles="true">
</logicalFolder>
<logicalFolder name="SourceFiles"
displayName="Source Files"
projectFiles="true">
<logicalFolder name="f2" displayName="wolfcrypt" projectFiles="true">
<itemPath>../../../wolfcrypt/src/aes.c</itemPath>
<itemPath>../../../wolfcrypt/src/arc4.c</itemPath>
<itemPath>../../../wolfcrypt/src/asm.c</itemPath>
<itemPath>../../../wolfcrypt/src/asn.c</itemPath>
<itemPath>../../../wolfcrypt/src/blake2b.c</itemPath>
<itemPath>../../../wolfcrypt/src/blake2s.c</itemPath>
<itemPath>../../../wolfcrypt/src/camellia.c</itemPath>
<itemPath>../../../wolfcrypt/src/chacha.c</itemPath>
<itemPath>../../../wolfcrypt/src/chacha20_poly1305.c</itemPath>
<itemPath>../../../wolfcrypt/src/cmac.c</itemPath>
<itemPath>../../../wolfcrypt/src/coding.c</itemPath>
<itemPath>../../../wolfcrypt/src/compress.c</itemPath>
<itemPath>../../../wolfcrypt/src/cpuid.c</itemPath>
<itemPath>../../../wolfcrypt/src/cryptocb.c</itemPath>
<itemPath>../../../wolfcrypt/src/curve25519.c</itemPath>
<itemPath>../../../wolfcrypt/src/curve448.c</itemPath>
<itemPath>../../../wolfcrypt/src/des3.c</itemPath>
<itemPath>../../../wolfcrypt/src/dh.c</itemPath>
<itemPath>../../../wolfcrypt/src/dilithium.c</itemPath>
<itemPath>../../../wolfcrypt/src/dsa.c</itemPath>
<itemPath>../../../wolfcrypt/src/ecc.c</itemPath>
<itemPath>../../../wolfcrypt/src/ecc_fp.c</itemPath>
<itemPath>../../../wolfcrypt/src/eccsi.c</itemPath>
<itemPath>../../../wolfcrypt/src/ed25519.c</itemPath>
<itemPath>../../../wolfcrypt/src/ed448.c</itemPath>
<itemPath>../../../wolfcrypt/src/error.c</itemPath>
<itemPath>../../../wolfcrypt/src/evp.c</itemPath>
<itemPath>../../../wolfcrypt/src/ext_kyber.c</itemPath>
<itemPath>../../../wolfcrypt/src/falcon.c</itemPath>
<itemPath>../../../wolfcrypt/src/fe_448.c</itemPath>
<itemPath>../../../wolfcrypt/src/fe_low_mem.c</itemPath>
<itemPath>../../../wolfcrypt/src/fe_operations.c</itemPath>
<itemPath>../../../wolfcrypt/src/ge_448.c</itemPath>
<itemPath>../../../wolfcrypt/src/ge_low_mem.c</itemPath>
<itemPath>../../../wolfcrypt/src/ge_operations.c</itemPath>
<itemPath>../../../wolfcrypt/src/hash.c</itemPath>
<itemPath>../../../wolfcrypt/src/hmac.c</itemPath>
<itemPath>../../../wolfcrypt/src/hpke.c</itemPath>
<itemPath>../../../wolfcrypt/src/integer.c</itemPath>
<itemPath>../../../wolfcrypt/src/kdf.c</itemPath>
<itemPath>../../../wolfcrypt/src/logging.c</itemPath>
<itemPath>../../../wolfcrypt/src/md2.c</itemPath>
<itemPath>../../../wolfcrypt/src/md4.c</itemPath>
<itemPath>../../../wolfcrypt/src/md5.c</itemPath>
<itemPath>../../../wolfcrypt/src/memory.c</itemPath>
<itemPath>../../../wolfcrypt/src/misc.c</itemPath>
<itemPath>../../../wolfcrypt/src/pkcs12.c</itemPath>
<itemPath>../../../wolfcrypt/src/pkcs7.c</itemPath>
<itemPath>../../../wolfcrypt/src/poly1305.c</itemPath>
<itemPath>../../../wolfcrypt/src/pwdbased.c</itemPath>
<itemPath>../../../wolfcrypt/src/random.c</itemPath>
<itemPath>../../../wolfcrypt/src/rc2.c</itemPath>
<itemPath>../../../wolfcrypt/src/ripemd.c</itemPath>
<itemPath>../../../wolfcrypt/src/rsa.c</itemPath>
<itemPath>../../../wolfcrypt/src/sakke.c</itemPath>
<itemPath>../../../wolfcrypt/src/sha.c</itemPath>
<itemPath>../../../wolfcrypt/src/sha256.c</itemPath>
<itemPath>../../../wolfcrypt/src/sha3.c</itemPath>
<itemPath>../../../wolfcrypt/src/sha512.c</itemPath>
<itemPath>../../../wolfcrypt/src/signature.c</itemPath>
<itemPath>../../../wolfcrypt/src/siphash.c</itemPath>
<itemPath>../../../wolfcrypt/src/sp_arm32.c</itemPath>
<itemPath>../../../wolfcrypt/src/sp_arm64.c</itemPath>
<itemPath>../../../wolfcrypt/src/sp_armthumb.c</itemPath>
<itemPath>../../../wolfcrypt/src/sp_c32.c</itemPath>
<itemPath>../../../wolfcrypt/src/sp_c64.c</itemPath>
<itemPath>../../../wolfcrypt/src/sp_int.c</itemPath>
<itemPath>../../../wolfcrypt/src/sphincs.c</itemPath>
<itemPath>../../../wolfcrypt/src/srp.c</itemPath>
<itemPath>../../../wolfcrypt/src/tfm.c</itemPath>
<itemPath>../../../wolfcrypt/src/wc_encrypt.c</itemPath>
<itemPath>../../../wolfcrypt/src/wc_pkcs11.c</itemPath>
<itemPath>../../../wolfcrypt/src/wc_port.c</itemPath>
<itemPath>../../../wolfcrypt/src/wolfevent.c</itemPath>
<itemPath>../../../wolfcrypt/src/wolfmath.c</itemPath>
</logicalFolder>
<logicalFolder name="f1" displayName="wolfssl" projectFiles="true">
<itemPath>../../../src/crl.c</itemPath>
<itemPath>../../../src/internal.c</itemPath>
<itemPath>../../../src/keys.c</itemPath>
<itemPath>../../../src/ssl.c</itemPath>
<itemPath>../../../src/tls.c</itemPath>
<itemPath>../../../src/tls13.c</itemPath>
<itemPath>../../../src/wolfio.c</itemPath>
</logicalFolder>
</logicalFolder>
<logicalFolder name="ExternalFiles"
displayName="Important Files"
projectFiles="false">
<itemPath>Makefile</itemPath>
</logicalFolder>
</logicalFolder>
<sourceRootList>
<Elem>..</Elem>
<Elem>../../src</Elem>
<Elem>../../wolfcrypt/src</Elem>
<Elem>../../wolfcrypt/test</Elem>
<Elem>../../../src</Elem>
<Elem>../../../wolfcrypt/src</Elem>
</sourceRootList>
<projectmakefile>Makefile</projectmakefile>
<confs>
<conf name="default" type="3">
<toolsSet>
<developmentServer>localhost</developmentServer>
<targetDevice>PIC24FJ1024GB610</targetDevice>
<targetHeader></targetHeader>
<targetPluginBoard></targetPluginBoard>
<platformTool>noID</platformTool>
<languageToolchain>XC16</languageToolchain>
<languageToolchainVersion>2.10</languageToolchainVersion>
<platform>4</platform>
</toolsSet>
<packs>
<pack name="PIC24F-GA-GB_DFP" vendor="Microchip" version="1.4.141"/>
</packs>
<ScriptingSettings>
</ScriptingSettings>
<compileType>
<linkerTool>
<linkerLibItems>
</linkerLibItems>
</linkerTool>
<archiverTool>
</archiverTool>
<loading>
<useAlternateLoadableFile>false</useAlternateLoadableFile>
<parseOnProdLoad>false</parseOnProdLoad>
<alternateLoadableFile></alternateLoadableFile>
</loading>
<subordinates>
</subordinates>
</compileType>
<makeCustomizationType>
<makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
<makeUseCleanTarget>false</makeUseCleanTarget>
<makeCustomizationPreStep></makeCustomizationPreStep>
<makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>
<makeCustomizationPostStep></makeCustomizationPostStep>
<makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>
<makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>
<makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
</makeCustomizationType>
<C30>
<property key="code-model" value="large-code"/>
<property key="const-model" value="default"/>
<property key="data-model" value="default"/>
<property key="disable-instruction-scheduling" value="false"/>
<property key="enable-all-warnings" value="true"/>
<property key="enable-ansi-std" value="false"/>
<property key="enable-ansi-warnings" value="false"/>
<property key="enable-fatal-warnings" value="false"/>
<property key="enable-large-arrays" value="false"/>
<property key="enable-omit-frame-pointer" value="false"/>
<property key="enable-procedural-abstraction" value="false"/>
<property key="enable-short-double" value="false"/>
<property key="enable-symbols" value="true"/>
<property key="enable-unroll-loops" value="false"/>
<property key="expand-pragma-config" value="false"/>
<property key="extra-include-directories" value="../../;../"/>
<property key="isolate-each-function" value="false"/>
<property key="keep-inline" value="false"/>
<property key="oXC16gcc-align-arr" value="false"/>
<property key="oXC16gcc-cnsts-mauxflash" value="false"/>
<property key="oXC16gcc-data-sects" value="false"/>
<property key="oXC16gcc-errata" value=""/>
<property key="oXC16gcc-fillupper" value=""/>
<property key="oXC16gcc-large-aggregate" value="false"/>
<property key="oXC16gcc-mauxflash" value="false"/>
<property key="oXC16gcc-mpa-lvl" value=""/>
<property key="oXC16gcc-name-text-sec" value=""/>
<property key="oXC16gcc-near-chars" value="false"/>
<property key="oXC16gcc-no-isr-warn" value="false"/>
<property key="oXC16gcc-sfr-warn" value="false"/>
<property key="oXC16gcc-smar-io-lvl" value="1"/>
<property key="oXC16gcc-smart-io-fmt" value=""/>
<property key="optimization-level" value="2"/>
<property key="post-instruction-scheduling" value="default"/>
<property key="pre-instruction-scheduling" value="default"/>
<property key="preprocessor-macros" value="WOLFSSL_USER_SETTINGS"/>
<property key="scalar-model" value="default"/>
<property key="use-cci" value="false"/>
<property key="use-iar" value="false"/>
</C30>
<C30-AR>
<property key="additional-options-chop-files" value="false"/>
</C30-AR>
<C30-AS>
<property key="assembler-symbols" value=""/>
<property key="expand-macros" value="false"/>
<property key="extra-include-directories-for-assembler" value=""/>
<property key="extra-include-directories-for-preprocessor" value=""/>
<property key="false-conditionals" value="false"/>
<property key="keep-locals" value="false"/>
<property key="list-assembly" value="false"/>
<property key="list-section-info" value="false"/>
<property key="list-source" value="false"/>
<property key="list-symbols" value="false"/>
<property key="oXC16asm-extra-opts" value=""/>
<property key="oXC16asm-list-to-file" value="false"/>
<property key="omit-debug-dirs" value="false"/>
<property key="omit-forms" value="false"/>
<property key="preprocessor-macros" value=""/>
<property key="relax" value="false"/>
<property key="warning-level" value="emit-warnings"/>
</C30-AS>
<C30-CO>
<property key="coverage-enable" value=""/>
<property key="stack-guidance" value="true"/>
</C30-CO>
<C30-LD>
<property key="additional-options-use-response-files" value="false"/>
<property key="boot-eeprom" value="no_eeprom"/>
<property key="boot-flash" value="no_flash"/>
<property key="boot-ram" value="no_ram"/>
<property key="boot-write-protect" value="no_write_protect"/>
<property key="enable-check-sections" value="false"/>
<property key="enable-data-init" value="true"/>
<property key="enable-default-isr" value="true"/>
<property key="enable-handles" value="true"/>
<property key="enable-pack-data" value="true"/>
<property key="extra-lib-directories" value=""/>
<property key="fill-flash-options-addr" value=""/>
<property key="fill-flash-options-const" value=""/>
<property key="fill-flash-options-how" value="0"/>
<property key="fill-flash-options-inc-const" value="1"/>
<property key="fill-flash-options-increment" value=""/>
<property key="fill-flash-options-seq" value=""/>
<property key="fill-flash-options-what" value="0"/>
<property key="general-code-protect" value="no_code_protect"/>
<property key="general-write-protect" value="no_write_protect"/>
<property key="generate-cross-reference-file" value="false"/>
<property key="heap-size" value=""/>
<property key="input-libraries" value=""/>
<property key="linker-stack" value="true"/>
<property key="linker-symbols" value=""/>
<property key="map-file" value="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map"/>
<property key="no-ivt" value="false"/>
<property key="oXC16ld-extra-opts" value=""/>
<property key="oXC16ld-fill-upper" value="0"/>
<property key="oXC16ld-force-link" value="false"/>
<property key="oXC16ld-no-smart-io" value="false"/>
<property key="oXC16ld-nostdlib" value="false"/>
<property key="oXC16ld-stackguard" value="16"/>
<property key="preprocessor-macros" value=""/>
<property key="remove-unused-sections" value="false"/>
<property key="report-memory-usage" value="true"/>
<property key="secure-eeprom" value="no_eeprom"/>
<property key="secure-flash" value="no_flash"/>
<property key="secure-ram" value="no_ram"/>
<property key="secure-write-protect" value="no_write_protect"/>
<property key="stack-size" value="16"/>
<property key="symbol-stripping" value=""/>
<property key="trace-symbols" value=""/>
<property key="warn-section-align" value="false"/>
</C30-LD>
<C30Global>
<property key="common-include-directories" value="../../.."/>
<property key="dual-boot-partition" value="0"/>
<property key="fast-math" value="false"/>
<property key="generic-16-bit" value="false"/>
<property key="legacy-libc" value="true"/>
<property key="mpreserve-all" value="false"/>
<property key="oXC16glb-macros" value=""/>
<property key="omit-pack-options" value="1"/>
<property key="output-file-format" value="elf"/>
<property key="preserve-all" value="false"/>
<property key="preserve-file" value=""/>
<property key="relaxed-math" value="false"/>
<property key="save-temps" value="false"/>
</C30Global>
</conf>
</confs>
</configurationDescriptor>

View File

@ -0,0 +1,7 @@
# vim:ft=automake
# All paths should be given relative to the root
#
EXTRA_DIST += \
IDE/MPLABX16/wolfssl.X/nbproject/configurations.xml \
IDE/MPLABX16/wolfssl.X/nbproject/project.xml

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>com.microchip.mplab.nbide.embedded.makeproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/make-project/1">
<name>wolfssl</name>
<creation-uuid>93bbfc3a-a0fa-4d48-bbc8-6cd47a2bd05b</creation-uuid>
<make-project-type>0</make-project-type>
<c-extensions>c</c-extensions>
<cpp-extensions/>
<header-extensions>h</header-extensions>
<sourceEncoding>ISO-8859-1</sourceEncoding>
<asminc-extensions/>
<make-dep-projects/>
<sourceRootList>
<sourceRootElem>..</sourceRootElem>
<sourceRootElem>../../src</sourceRootElem>
<sourceRootElem>../../wolfcrypt/src</sourceRootElem>
<sourceRootElem>../../wolfcrypt/test</sourceRootElem>
<sourceRootElem>../../../src</sourceRootElem>
<sourceRootElem>../../../wolfcrypt/src</sourceRootElem>
</sourceRootList>
<confList>
<confElem>
<name>default</name>
<type>3</type>
</confElem>
</confList>
<formatting>
<project-formatting-style>false</project-formatting-style>
</formatting>
</data>
</configuration>
</project>

View File

@ -57,6 +57,9 @@ include IDE/STARCORE/include.am
include IDE/MDK5-ARM/include.am
include IDE/SimplicityStudio/include.am
include IDE/apple-universal/include.am
include IDE/MPLABX16/include.am
include IDE/MPLABX16/wolfssl.X/nbproject/include.am
include IDE/MPLABX16/wolfcrypt_test.X/nbproject/include.am
EXTRA_DIST+= IDE/IAR-EWARM IDE/MDK-ARM IDE/MYSQL IDE/LPCXPRESSO IDE/HEXIWEAR IDE/Espressif
EXTRA_DIST+= IDE/OPENSTM32/README.md

View File

@ -259,7 +259,9 @@ decouple library dependencies with standard string, memory and so on.
#endif
#elif defined(WC_16BIT_CPU)
#ifndef MICROCHIP_PIC24
#undef WORD64_AVAILABLE
#endif
typedef word16 wolfssl_word;
#define MP_16BIT /* for mp_int, mp_word needs to be twice as big as \
* mp_digit, no 64 bit type so make mp_digit 16 bit */
@ -704,7 +706,7 @@ typedef struct w64wrapper {
/* XC32 supports str[n]casecmp in version >= 1.0. */
#define XSTRCASECMP(s1,s2) strcasecmp((s1),(s2))
#elif defined(MICROCHIP_PIC32) || defined(WOLFSSL_TIRTOS) || \
defined(WOLFSSL_ZEPHYR)
defined(WOLFSSL_ZEPHYR) || defined(MICROCHIP_PIC24)
/* XC32 version < 1.0 does not support strcasecmp. */
#define USE_WOLF_STRCASECMP
#define XSTRCASECMP(s1,s2) wc_strcasecmp(s1,s2)
@ -734,7 +736,7 @@ typedef struct w64wrapper {
/* XC32 supports str[n]casecmp in version >= 1.0. */
#define XSTRNCASECMP(s1,s2,n) strncasecmp((s1),(s2),(n))
#elif defined(MICROCHIP_PIC32) || defined(WOLFSSL_TIRTOS) || \
defined(WOLFSSL_ZEPHYR)
defined(WOLFSSL_ZEPHYR) || defined(MICROCHIP_PIC24)
/* XC32 version < 1.0 does not support strncasecmp. */
#define USE_WOLF_STRNCASECMP
#define XSTRNCASECMP(s1,s2) wc_strncasecmp(s1,s2)