Chris Conlon b89354880f switch pragma once uses, causes warnings on some compilers 9 ani în urmă
..
Kinetis_FlashPlacement.xml 16ba3138a1 Added support for the Rowley CrossWorks for ARM IDE. Added new "WOLFSSL_ROWLEY_ARM" setting define. Added a sample solution (wolfssl.hzp) for building the WolfSSL library and sample test/benchmark applications. The sample applications are written for the Freescale Kinetis K64, but easily be customized for any Kinetis or further extended to support other ARM micro-controllers. 9 ani în urmă
Kinetis_MemoryMap.xml 16ba3138a1 Added support for the Rowley CrossWorks for ARM IDE. Added new "WOLFSSL_ROWLEY_ARM" setting define. Added a sample solution (wolfssl.hzp) for building the WolfSSL library and sample test/benchmark applications. The sample applications are written for the Freescale Kinetis K64, but easily be customized for any Kinetis or further extended to support other ARM micro-controllers. 9 ani în urmă
README.md 32171997e7 Updated Rowley CrossWorks README.md for enabling FREESCALE_MMCAU. Added sample benchmark output with MMCAU enabled. 9 ani în urmă
arm_startup.c 16ba3138a1 Added support for the Rowley CrossWorks for ARM IDE. Added new "WOLFSSL_ROWLEY_ARM" setting define. Added a sample solution (wolfssl.hzp) for building the WolfSSL library and sample test/benchmark applications. The sample applications are written for the Freescale Kinetis K64, but easily be customized for any Kinetis or further extended to support other ARM micro-controllers. 9 ani în urmă
benchmark_main.c 09793e3206 Added benchmark.h to expose the benchmark_test function. Updated a couple of projects to use the new benchmark header. 9 ani în urmă
hw.h b89354880f switch pragma once uses, causes warnings on some compilers 9 ani în urmă
include.am c898c582f9 Corrected filename in include.am and top of file. 9 ani în urmă
kinetis_hw.c 099b6bc3df Updated the Rowley Crossworks example so it builds due to new user-crypto. Tested and verified new "CUSTOM_RAND_TYPE" using 8, 16 and 32 bit values. 9 ani în urmă
retarget.c c898c582f9 Corrected filename in include.am and top of file. 9 ani în urmă
test_main.c 16ba3138a1 Added support for the Rowley CrossWorks for ARM IDE. Added new "WOLFSSL_ROWLEY_ARM" setting define. Added a sample solution (wolfssl.hzp) for building the WolfSSL library and sample test/benchmark applications. The sample applications are written for the Freescale Kinetis K64, but easily be customized for any Kinetis or further extended to support other ARM micro-controllers. 9 ani în urmă
user_settings.h 05f4c83b98 Optimizations to improve random number generation performance and provide additional ways to implement custom versions of custom random handlers. Added new "CUSTOM_RAND_TYPE" to define the datatype for the "CUSTOM_RAND_GENERATE" function. Added new "CUSTOM_RAND_GENERATE_SEED" option for anyone who wants to implement their own equivalent "wc_GenerateSeed()" function. Added generic FREESCALE_RNGA and FREESCALE_RNGB options. 9 ani în urmă
wolfssl.hzp 1894358bec Rowley IDE fix to exclude .asm and .s files. Cleanup to remove Rowley example code, leaving just stubs and Wolf code. 9 ani în urmă

README.md

Rowley CrossWorks ARM Project for wolfSSL and wolfCrypt

This directory contains a CrossWorks solution named wolfssl.hzp.

Inside are three projects:

  1. libwolfssl: This generates a library file named "libwolfssl_ARM_Debug/libwolfssl_v7em_t_le_eabi.a"
  2. benchmark: This is a sample benchmark application. It runs the "benchmark_test" suite repeatedly until a failure occurs.
  3. test: This is a sample test application. It runs "wolfcrypt_test" suite suite repeatedly until a failure occurs.

Prerequisits

You will need to install the "Freescale Kinetis CPU Support Package" in the Rowley Package Manager under Tools -> Pacakge Manager.

Harware Support

All hardware functions are defined in kinetis_hw.c and are currently setup for a Freescale Kinetis K64 Coretx-M4 microcontroller. This file can be customized to work with other Kinetis microcontrollers by editing the top part of the file. Testing for this project was done with the Freescale Kinetis MK64FN1M0xxx12 using the TWR-K64F120M.

To create support for a new ARM microcontroller the functions in hw.h will need to be implemented.

Also you will need to configure the ARM Architecture and ARM Core Type in the "Solution Properties" -> "ARM". Also the "Target Processor" in each of the projects ("Project Properties" -> "Target Processor")

Hardware Crypto Acceleration

To enable Freescale MMCAU:

  1. Download the MMCAU library.
  2. Copy the lib_mmcau.a and cau_api.h files into the project.
  3. Enable the FREESCALE_MMCAU define in user_settings.h and make sure its value is 1.
  4. Add the lib_mmcau.a file to Source Files in the application project.

Project Files

  • arm_startup.c: Handles startup from reset_handler. Disabled watchdog, initializes sections, initializes heap, starts harware and starts main.
  • benchmark_main.c: The main function entrypoint for benchmark application.
  • hw.h: The hardware API interface. These hardware interface functions are required for all platforms.
  • kinetis_hw.c: The most basic hardware implementation required for Kinetis.
  • test_main.c: The main function entrypoint for test application.
  • user_libc.c: Defines stubs for functions required by libc. It also wraps hardware functions for UART, RTC and Random Number Generator (RNG).
  • user_settings.h: This is the custom user configuration file for WolfSSL.

Functions required by the WolfSSL Library

If you are writting your own application, the following functions need to be implemented to support the WolfSSL library:

  • double current_time(int reset): Returns a doulbe as seconds.milliseconds.
  • int custom_rand_generate(void): Returns a 32-bit randomly generated number.