Skip to content
Snippets Groups Projects
Commit 2317121e authored by Sivert Sliper's avatar Sivert Sliper
Browse files

support, iclib and aes now builds. Not tested.

parent 2769be3e
Branches
No related tags found
No related merge requests found
......@@ -23,7 +23,7 @@ include_directories(cmsis)
add_subdirectory(support)
add_subdirectory(iclib)
#add_subdirectory(aes)
add_subdirectory(aes)
#add_subdirectory(matmul)
#add_subdirectory(matmul-tiled)
#add_subdirectory(crc)
......
cmake_minimum_required(VERSION 3.0)
FOREACH(METHOD "MS" "AS" "QR")
set(TESTNAME "aes-${METHOD}")
set(TESTNAME "aes-${METHOD}-${TARGET_ARCH}")
add_executable(
${TESTNAME}
main.c
......
......@@ -139,7 +139,3 @@ void aes_encrypt(unsigned char *state, unsigned char *key)
state[i]=state[i] ^ key[i];
}
}
......@@ -2,7 +2,6 @@
#include <stdint.h>
#include <stdio.h>
#include "TI_aes_128_encr_only.h"
#define MMDATA // Empty macro
......
#include <stdint.h>
#include "iclib/cm0_ic.h"
uint8_t input[2048] MMDATA =
"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo "
......
#include "test-common.h"
#include <ic.h>
#include <memory_management.h>
#include "support/test-common.h"
#ifdef MSP430_ARCH
#include <msp430fr5994.h>
#include "iclib/msp430_ic.h"
#include "iclib/memory_management.h"
#elif defined(CM0_ARCH)
#include "support/cm0-support.h"
#endif
/* Benchmark includes */
#include "TI_aes_128_encr_only.h"
......@@ -15,14 +20,15 @@ static unsigned char key[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
/* ------ Function Declarations ---------------------------------------------*/
int main(void) {
target_init();
while (1) {
P1OUT |= BIT2;
indicate_begin();
// AES128 in Cipher Block Chaining mode
uint8_t *prevBlock;
uint8_t *ptr = input;
// Acquire and encrypt first block
mm_acquire_array(ptr, AES_BLOCK_SIZE, MM_READWRITE);
//mm_acquire_array(ptr, AES_BLOCK_SIZE, MM_READWRITE);
aes_encrypt(ptr, key);
prevBlock = ptr;
ptr += AES_BLOCK_SIZE;
......@@ -30,7 +36,7 @@ int main(void) {
// Encrypt remaining blocks
while (ptr < input + sizeof(input)) {
// Acquire current block
mm_acquire_array(ptr, AES_BLOCK_SIZE, MM_READWRITE);
//mm_acquire_array(ptr, AES_BLOCK_SIZE, MM_READWRITE);
// CBC - Cipher Block Chaining mode
for (int i = 0; i < AES_BLOCK_SIZE; i++) {
......@@ -38,7 +44,7 @@ int main(void) {
}
// Release previous block
mm_release_array(prevBlock, AES_BLOCK_SIZE);
//mm_release_array(prevBlock, AES_BLOCK_SIZE);
// Encrypt current block
aes_encrypt(ptr, key);
......@@ -48,12 +54,12 @@ int main(void) {
}
// Release last block
mm_release_array(prevBlock, AES_BLOCK_SIZE);
//mm_release_array(prevBlock, AES_BLOCK_SIZE);
P1OUT &= ~BIT2;
mm_flush();
indicate_end();
//mm_flush();
// Delay
WAIT
wait();
}
}
......@@ -34,7 +34,7 @@ link_libraries( # Global link flags
)
# Utility for linking targets to std libs
set(SUPPORT_LIBS mul_f5 gcc c)
set(SUPPORT_LIBS support-${TARGET_ARCH} mul_f5 gcc c)
ELSEIF(${TARGET_ARCH} STREQUAL "cm0")
......@@ -66,12 +66,7 @@ ELSEIF(${TARGET_ARCH} STREQUAL "cm0")
-mcpu=cortex-m0
)
set(SUPPORT_LIBS
support
nosys
m
gcc
c)
set(SUPPORT_LIBS nosys m gcc c)
ELSE()
message(ERROR "Invalid TARGET_ARCH: ${TARGET_ARCH}")
......
cmake_minimum_required(VERSION 3.13)
# Commmon function to add linker script and definitions for each target
message("Testname ${TESTNAME}")
target_link_libraries(
${TESTNAME}
LINK_PUBLIC ic-${TARGET_ARCH}-${METHOD}
target_link_libraries( ${TESTNAME}
LINK_PUBLIC support-${TARGET_ARCH}
LINK_PUBLIC ic-${METHOD}-${TARGET_ARCH}
${SUPPORT_LIBS}
)
set_target_properties(${TESTNAME} PROPERTIES SUFFIX ".elf")
IF(${METHOD} STREQUAL "QR")
target_compile_definitions( ${TESTNAME} PRIVATE -DQUICKRECALL)
ELSEIF(${METHOD} STREQUAL "AS")
target_compile_definitions( ${TESTNAME} PRIVATE -DALLOCATEDSTATE)
ELSEIF(${METHOD} STREQUAL "MS")
target_compile_definitions( ${TESTNAME} PRIVATE -DMANAGEDSTATE)
ENDIF()
IF(${TARGET_ARCH} STREQUAL "msp430")
#add_msp_upload(${TESTNAME})
target_compile_definitions( ${TESTNAME} PRIVATE -DMSP430_ARCH)
IF (${METHOD} STREQUAL "QR")
target_link_options(
${TESTNAME}
PRIVATE -T${CMAKE_CURRENT_LIST_DIR}/support/msp430fr5994-fram-only.ld
)
target_link_options( ${TESTNAME}
PRIVATE -T${CMAKE_CURRENT_LIST_DIR}/support/msp430fr5994-fram-only.ld)
ELSE ()
target_link_options(
${TESTNAME}
PRIVATE -T${CMAKE_CURRENT_LIST_DIR}/support/msp430fr5994.ld
)
target_link_options( ${TESTNAME}
PRIVATE -T${CMAKE_CURRENT_LIST_DIR}/support/msp430fr5994.ld)
ENDIF()
ELSEIF(${TARGET_ARCH} STREQUAL "cm0")
message("Testname ${TESTNAME}")
target_link_options(
${TESTNAME}
PRIVATE -T${CMAKE_CURRENT_LIST_DIR}/support/cm0-FS.ld
)
target_compile_definitions( ${TESTNAME} PRIVATE -DCM0_ARCH)
target_link_options( ${TESTNAME}
PRIVATE -T${CMAKE_CURRENT_LIST_DIR}/../support/cm0-FS.ld)
ENDIF()
set_target_properties(${TESTNAME} PROPERTIES SUFFIX ".elf")
# Emit map, listing and hex
add_custom_command(TARGET ${TESTNAME} POST_BUILD
COMMAND ${TC-SIZE} -A -x "$<TARGET_FILE:${TESTNAME}>" > ${TESTNAME}.map
......
......@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.0)
FOREACH(METHOD "MS" "AS" "QR")
string(COMPARE EQUAL ${METHOD} "QR" QUICKRECALL)
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/common.cmake)
set(TESTNAME "ic-${TARGET_ARCH}-${METHOD}")
set(TESTNAME "ic-${METHOD}-${TARGET_ARCH}")
IF(${TARGET_ARCH} STREQUAL "cm0")
add_library(
......@@ -12,7 +12,7 @@ FOREACH(METHOD "MS" "AS" "QR")
cm0_ic.h
cm0_ic.S
)
target_link_libraries(${TESTNAME} support)
target_link_libraries(${TESTNAME} support-${TARGET_ARCH})
ELSEIF(${TARGET_ARCH} STREQUAL "msp430")
add_library(
${TESTNAME}
......
......@@ -21,11 +21,10 @@ extern uint8_t __boot_stack_high;
// ------------- Globals -------------------------------------------------------
// ------------- PERSISTENT VARIABLES ------------------------------------------
#define PERSISTENT __attribute__((section(".persistent")))
// Snapshots
uint32_t saved_stack_pointer PERSISTENT;
uint32_t stack_snapshot[STACK_SIZE] PERSISTENT;
uint32_t stack_snapshot[STACK_SIZE / sizeof(uint32_t)] PERSISTENT;
int suspending PERSISTENT; /*! Flag to determine whether returning from
suspend() or restore() */
......
#ifndef IC_SRC
#define IC_SRC
#define PERSISTENT __attribute__((section(".persistent")))
#define MMDATA __attribute__((section(".mmdata")))
#include <stdint.h>
#include "iclib/config.h"
void _start();
#endif /* IC_SRC */
......@@ -13,7 +13,7 @@
/* ------ Section sizes -----------------------------------------------------*/
/* Allocates (plenty of) space for snapshot in FRAM. Note that these can be made
* smaller for most apps*/
#define STACK_SIZE 0x1000
#define STACK_SIZE 0x400
#define BSS_SIZE 0x1000
#define DATA_SIZE 0x2000
#define MMDATA_SIZE 0x2000
......
......@@ -8,8 +8,6 @@
#include "config.h"
/***************** Macros (Inline Functions) Definitions *********************/
// Utility to put variables in the mmdata section
#define MMDATA __attribute__((section(".mmdata")))
/************************** Constant Definitions *****************************/
......
cmake_minimum_required(VERSION 3.13)
add_library(support "")
add_library(support-${TARGET_ARCH} "")
target_sources(support
PRIVATE cm0-vectors.c
target_sources(support-${TARGET_ARCH}
PRIVATE cm0-vectors.c cm0-support.c
PUBLIC cm0.h
)
......@@ -3,14 +3,15 @@ EXTERN (__VECTOR_TRABLE)
ENTRY(Reset_Handler)
__stack_size = 0x200;
__boot_stack_size = 0x40;
MEMORY
{
/*rom (rwx) : ORIGIN = 0x08000000, LENGTH = 16K */
/*ram (rwx) : ORIGIN = 0x20000000, LENGTH = 4K */
/*invm (rx) : ORIGIN = 0x20000000, LENGTH = 8K */
rom (rx) : ORIGIN = 0x08000000, LENGTH = 8K
nvram (rwx): ORIGIN = 0x20000000, LENGTH = 8K
rom (rx) : ORIGIN = 0x08000000, LENGTH = 16K
nvram (rwx): ORIGIN = 0x20000000, LENGTH = 16K
sram (rwx) : ORIGIN = 0x20000000 + 16K, LENGTH = 8K
}
......@@ -123,9 +124,9 @@ SECTIONS
.boot_stack (NOLOAD) :
{
PROVIDE(__boot_stack_low = .);
. = ALIGN(4)
. = ALIGN(4);
*(.stack)
. += 0x100;
. += __boot_stack_size;
PROVIDE(__boot_stack_high = .);
} > sram
......
#include <stdint.h>
#include <string.h>
#include <fused.h>
#include "support/cm0.h"
#include "support/cm0-support.h"
#include <fused.h>
void indicate_begin() {
SIMPLE_MONITOR = SIMPLE_MONITOR_INDICATE_BEGIN;
......@@ -31,7 +31,7 @@ void fused_assert (bool c) {
void target_init() { return; }
// Boot function
/*
__attribute__((optimize(1), naked, used, section(".ftext"))) void _start() {
// Boot data (if necessary)
extern uint8_t __data_low, __data_high, __data_loadLow;
......@@ -42,3 +42,4 @@ __attribute__((optimize(1), naked, used, section(".ftext"))) void _start() {
int main();
main();
}
*/
......@@ -8,4 +8,4 @@ void indicate_begin();
void indicate_end();
void fused_assert(bool c);
void fused_end_simulation();
void _start();
// void _start();
......@@ -24,6 +24,7 @@
#include <fused.h>
#include "support/cm0.h"
#include "iclib/cm0_ic.h"
/*----------------------------------------------------------------------------
External References
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment