diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..1e81119 --- /dev/null +++ b/.clang-format @@ -0,0 +1,11 @@ +BasedOnStyle: Google +IndentWidth: 4 +AlignConsecutiveMacros: Consecutive +AlignConsecutiveDeclarations: true +AlignConsecutiveAssignments: true +BreakBeforeBraces: Custom +BraceWrapping: + AfterEnum: false + AfterStruct: false + SplitEmptyFunction: false +ColumnLimit: 120 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ee1fbdd --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +/board/*.bak +/build +/cmake-build-* +/.vscode +/*.jdebug* +/*.jflash \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index d34bc34..f9e17b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,9 +86,6 @@ set(TARGET_LIB_DIRECTORIES "SDK/devices/LPC54102/gcc" ) -# Device specific settings, goes to CFLAGS and LDFLAGS -set(TARGET_CFLAGS_HARDWARE "-mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16") - # Conditional flags # DEBUG set(CMAKE_C_FLAGS_DEBUG "-DDEBUG -Og -g") @@ -102,10 +99,10 @@ set(CMAKE_ASM_FLAGS_RELEASE "-DNDEBUG -O2 -flto") set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-flto") # Final compiler flags -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TARGET_CFLAGS_HARDWARE} -Wall -fno-common -fno-builtin -ffreestanding -fdata-sections -ffunction-sections") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TARGET_CFLAGS_HARDWARE} -Wall -fno-common -fno-builtin -ffreestanding -fdata-sections -ffunction-sections") -set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${CMAKE_C_FLAGS} -x assembler-with-cpp") -set(CMAKE_EXE_LINKER_FLAGS "-specs=nano.specs -specs=nosys.specs -Wl,--gc-sections -Wl,--print-memory-usage -lc -lm -lnosys ") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fno-common -fno-builtin -ffreestanding -fdata-sections -ffunction-sections") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fno-common -fno-builtin -ffreestanding -fdata-sections -ffunction-sections") +set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -x assembler-with-cpp") +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gc-sections") add_subdirectory(lib/pixart_pah8001ei) @@ -119,18 +116,27 @@ link_libraries(${TARGET_LIBS}) # Create ELF add_executable("${CMAKE_PROJECT_NAME}_FLASH.elf" ${TARGET_SOURCES}) +target_compile_definitions("${CMAKE_PROJECT_NAME}_FLASH.elf" + PRIVATE ${TARGET_C_DEFINES_XIP} +) target_link_options("${CMAKE_PROJECT_NAME}_FLASH.elf" PRIVATE "-T${TARGET_LDSCRIPT_FLASH}" PRIVATE "-Wl,--Map=${CMAKE_PROJECT_NAME}_FLASH.map" ) +set_property(TARGET "${CMAKE_PROJECT_NAME}_FLASH.elf" APPEND + PROPERTY ADDITIONAL_CLEAN_FILES "${CMAKE_PROJECT_NAME}_FLASH.map" +) add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}_FLASH.hex" COMMAND ${CMAKE_OBJCOPY} "-O" "ihex" "${CMAKE_PROJECT_NAME}_FLASH.elf" "${CMAKE_PROJECT_NAME}_FLASH.hex" DEPENDS "${CMAKE_PROJECT_NAME}_FLASH.elf" ) -set_property(TARGET "${CMAKE_PROJECT_NAME}_FLASH.elf" APPEND - PROPERTY ADDITIONAL_CLEAN_FILES "${CMAKE_PROJECT_NAME}_FLASH.map" -) add_custom_target("${CMAKE_PROJECT_NAME}_FLASH_HEX" DEPENDS "${CMAKE_PROJECT_NAME}_FLASH.hex") +if(DEFINED TARGET_TOOLCHAIN_SIZE) + add_custom_command(TARGET "${CMAKE_PROJECT_NAME}_FLASH.elf" POST_BUILD + COMMAND ${TARGET_TOOLCHAIN_SIZE} "${CMAKE_PROJECT_NAME}_FLASH.elf" + ) +endif() + # Create ELF add_executable("${CMAKE_PROJECT_NAME}_RAM.elf" ${TARGET_SOURCES}) @@ -138,7 +144,7 @@ target_link_options("${CMAKE_PROJECT_NAME}_RAM.elf" PRIVATE "-T${TARGET_LDSCRIPT_RAM}" PRIVATE "-Wl,--Map=${CMAKE_PROJECT_NAME}_RAM.map" ) -set_property(TARGET "${CMAKE_PROJECT_NAME}_FLASH.elf" APPEND +set_property(TARGET "${CMAKE_PROJECT_NAME}_RAM.elf" APPEND PROPERTY ADDITIONAL_CLEAN_FILES "${CMAKE_PROJECT_NAME}_RAM.map" ) add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}_RAM.hex" @@ -146,3 +152,9 @@ add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}_RAM.hex" DEPENDS "${CMAKE_PROJECT_NAME}_RAM.elf" ) add_custom_target("${CMAKE_PROJECT_NAME}_RAM_HEX" DEPENDS "${CMAKE_PROJECT_NAME}_RAM.hex") +if(DEFINED TARGET_TOOLCHAIN_SIZE) + add_custom_command(TARGET "${CMAKE_PROJECT_NAME}_RAM.elf" POST_BUILD + COMMAND ${TARGET_TOOLCHAIN_SIZE} "${CMAKE_PROJECT_NAME}_RAM.elf" + ) +endif() + diff --git a/LPC54102J512_M4F.mex b/LPC54102J512_M4F.mex deleted file mode 100644 index e6eebbb..0000000 --- a/LPC54102J512_M4F.mex +++ /dev/null @@ -1,223 +0,0 @@ - - - - LPC54102J512 - LPC54102J512BD64 - ksdk2_0 - - - - - - - - true - false - false - true - false - - - - - - - - - 11.0.1 - - - - Configures pin routing and optionally pin electrical features. - - true - cm4 - true - - - - - true - - - - - true - - - - - true - - - - - - - - - - - - - - - - - - - 11.0.1 - - - - - - - - - true - - - - - true - - - - - true - - - - - true - - - - - true - - - - - true - - - - - - - - - - - - true - - - - - - - N/A - - - - - - - - true - - - - - 2.0.2 - - - - - - - - - 11.0.1 - - - - - - - - - true - - - - - true - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - N/A - - - - \ No newline at end of file diff --git a/SDK b/SDK index 5540a4c..ada43e8 160000 --- a/SDK +++ b/SDK @@ -1 +1 @@ -Subproject commit 5540a4c296a16ba1fd7bbe78dec73165903fc94d +Subproject commit ada43e86a127cf8ad552012e98a4eeb63d717606 diff --git a/arm-none-eabi.cmake b/arm-none-eabi.cmake index ab16b40..22be85c 100644 --- a/arm-none-eabi.cmake +++ b/arm-none-eabi.cmake @@ -1,10 +1,17 @@ -set(CMAKE_C_COMPILER arm-none-eabi-gcc) -set(CMAKE_CXX_COMPILER arm-none-eabi-g++) - -# Make CMake happy about those compilers -set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY") - # Poor old Windows... if(WIN32) set(CMAKE_SYSTEM_NAME "Generic") -endif() \ No newline at end of file +endif() + +set(CMAKE_C_COMPILER arm-none-eabi-gcc) +set(CMAKE_CXX_COMPILER arm-none-eabi-g++) + +# Optionally set size binary name, for elf section size reporting. +set(TARGET_TOOLCHAIN_SIZE arm-none-eabi-size) + +set(CMAKE_C_FLAGS_INIT "-mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16") +set(CMAKE_CXX_FLAGS_INIT "-mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16") +set(CMAKE_EXE_LINKER_FLAGS_INIT "-specs=nano.specs -specs=nosys.specs -Wl,--print-memory-usage -Wl,--no-warn-rwx-segments") + +# Make CMake happy about those compilers +set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")