Compare commits
No commits in common. "87aae7719b6934c72d2554644b8b3ef260d1161b" and "b8839a9b2b015cc23a19e527f72f22c25dc521a8" have entirely different histories.
87aae7719b
...
b8839a9b2b
23 changed files with 22572 additions and 3331 deletions
8
.gitignore
vendored
8
.gitignore
vendored
|
|
@ -1,11 +1,3 @@
|
|||
main.o
|
||||
main.map
|
||||
main.elf
|
||||
build/CMakeFiles
|
||||
build/src
|
||||
build/tests
|
||||
build/CMakeCache.txt
|
||||
build/CTestTestfile.cmake
|
||||
build/Makefile
|
||||
build/cmake_install.cmake
|
||||
build/compile_commands.json
|
||||
|
|
|
|||
|
|
@ -1,68 +0,0 @@
|
|||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
# Use the fancy version substitution
|
||||
project(cmake-cpputest-template
|
||||
VERSION 1.0
|
||||
DESCRIPTION "template for cmake + cpputest"
|
||||
LANGUAGES C CXX
|
||||
)
|
||||
enable_testing()
|
||||
|
||||
set(TARGET_GROUP production CACHE STRING "Group to build")
|
||||
|
||||
if(MSVC OR MSYS OR MINGW)
|
||||
message("### SETUP FOR WINDOWS ###")
|
||||
add_definitions(-DWINDOWS)
|
||||
else()
|
||||
message("### SETUP FOR UNIX ###")
|
||||
add_definitions(-DUNIX)
|
||||
endif()
|
||||
|
||||
# For being able to used LSP
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
# Request C 17 standard features
|
||||
set(CMAKE_C_STANDARD 17)
|
||||
set(CMAKE_C_STANDARD_REQUIRED True)
|
||||
set(CMAKE_C_FLAGS "-Wall -Werror -Wpedantic")
|
||||
|
||||
# SETUP THE CXX flags for .cpp
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||
set(CMAKE_CXX_FLAGS "-Wall -Werror -Wpedantic")
|
||||
|
||||
|
||||
|
||||
# #######################################
|
||||
# TESTING STUFF
|
||||
# #######################################
|
||||
|
||||
|
||||
if (UNIT_TESTING)
|
||||
|
||||
if(DEFINED ENV{CPPUTEST_HOME})
|
||||
message(STATUS "Using CppUTest home: $ENV{CPPUTEST_HOME}")
|
||||
set(CPPUTEST_INCLUDE_DIRS $ENV{CPPUTEST_HOME}/include)
|
||||
set(CPPUTEST_LIBRARIES $ENV{CPPUTEST_HOME}/lib)
|
||||
set(CPPUTEST_LDFLAGS CppUTest CppUTestExt)
|
||||
else()
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_search_module(CPPUTEST REQUIRED cpputest>=3.8)
|
||||
message(STATUS "Found CppUTest version ${CPPUTEST_VERSION}")
|
||||
endif()
|
||||
|
||||
include_directories(
|
||||
${CPPUTEST_INCLUDE_DIRS}
|
||||
/usr/include/c++/11/
|
||||
)
|
||||
link_directories(${CPPUTEST_LIBRARIES})
|
||||
|
||||
add_subdirectory(tests)
|
||||
|
||||
endif()
|
||||
|
||||
# #######################################
|
||||
# PROJECT SPECIFIC
|
||||
# #######################################
|
||||
|
||||
add_subdirectory(src)
|
||||
101
README.md
101
README.md
|
|
@ -0,0 +1,101 @@
|
|||
# AVR ATiny13 Project 002
|
||||
|
||||
This is the firmware for a latching dual relay system. It allows the user to
|
||||
switch two DPDT relays by with two separate switches.
|
||||
|
||||
|
||||
## Components:
|
||||
|
||||
**Micro:** AVR ATiny13, ATiny25/45/85
|
||||
|
||||
## Instructions:
|
||||
|
||||
1. Power the system using a 1.8v~5.5v power supply
|
||||
2. Set/program the AVR to use a 1MHz clock rate.
|
||||
3. Connect the pins as described above.
|
||||
|
||||
**ACTIVATING RELAYS:**
|
||||
|
||||
1. Activate the desired button with a quick press <= 350ms.
|
||||
2. Repeat to toggle the relay.
|
||||
|
||||
**TEMPORARY TOGGLE:**
|
||||
|
||||
1. Press and hold the desired button >= 350ms.
|
||||
2. Let go to disable.
|
||||
|
||||
**SAVING SETTINGS:**
|
||||
|
||||
1. Press and hold the target button.
|
||||
2. While holding the button power cycle the device.
|
||||
3. When the setting is successfully saved the relay/led will blink/toggle.
|
||||
4. repeat until desired preset is saved.
|
||||
|
||||
|
||||
## Technical Aspects:
|
||||
|
||||
The use of C style bitfields has been used inside a struct to maintain a global
|
||||
state. It minimizes the size of the binary once compiled.
|
||||
|
||||
The majority of the code is blocking/polling; overhead from introducing
|
||||
interrupts and ISR(interrupt service routines) wasn't as clean and made it more
|
||||
platform dependent.
|
||||
|
||||
The code right now can for the most part be ported to any AVR micro-controller
|
||||
with no changes.
|
||||
|
||||
## Timings
|
||||
|
||||
The current setup is calculated for a attiny13/a running at 4.8Mhz without the
|
||||
clock divider fuse set.
|
||||
|
||||
This means that the actual f_cpu is 4.8Mhz to calculate the delay times
|
||||
we can use this formula:
|
||||
|
||||
$$
|
||||
msPerOverflow = 1000ms / (\frac{4.8Mhz}{64} * \frac{1}{256}) \approx 6.8ms
|
||||
$$
|
||||
|
||||
Where $64$ is the pre scaler setting and $256$ is the maximum value of the 8bit
|
||||
timer.
|
||||
|
||||
## BUILDING PROJECT:
|
||||
|
||||
|
||||
**On Unix**
|
||||
```sh
|
||||
git clone <REPOURL>
|
||||
cd <REPO>
|
||||
make flash
|
||||
```
|
||||
|
||||
## Flashing the Project
|
||||
|
||||
**On Windows(usbtinyisp)**
|
||||
|
||||
1. Install the usbtiny driver:
|
||||
1. plug in usbtiny device
|
||||
2. Install the drivers from: [adafruit](https://learn.adafruit.com/usbtinyisp/drivers)
|
||||
2. open Powershell
|
||||
3. navigate to the repo directory *cd Downloads\gf_002*
|
||||
4. enter the command below.
|
||||
|
||||
```ps1
|
||||
./avrdude.exe -p t13 -c usbtiny -B 125kHz -U flash:w:.\pre_built\attiny13_4-8Mhz.hex -U lfuse:w:0x79:m -U hfuse:w:0xFF:m -U lock:w:0xFF:m
|
||||
```
|
||||
|
||||
|
||||
**On Windows(usbASP)**
|
||||
|
||||
1. Install the usbasp driver:
|
||||
1. plug in usbasp device
|
||||
2. run the 'zadig-2.8.exe' program
|
||||
3. select the libusb 32 on the right by clicking the down arrow to select.
|
||||
2. open Powershell
|
||||
3. navigate to the repo directory *cd Downloads\gf_002*
|
||||
4. enter the command below.
|
||||
|
||||
```ps1
|
||||
./avrdude.exe -p t13 -c usbasp -B 125kHz -U flash:w:.\pre_built\attiny13_4-8Mhz.hex -U lfuse:w:0x79:m -U hfuse:w:0xFF:m -U lock:w:0xFF:m
|
||||
```
|
||||
|
||||
22341
avrdude.conf
Normal file
22341
avrdude.conf
Normal file
File diff suppressed because it is too large
Load diff
BIN
avrdude.exe
Normal file
BIN
avrdude.exe
Normal file
Binary file not shown.
BIN
avrdude.pdb
Normal file
BIN
avrdude.pdb
Normal file
Binary file not shown.
|
|
@ -1 +0,0 @@
|
|||
./build/compile_commands.json
|
||||
65
makefile
Normal file
65
makefile
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
# Author: Jake Goodwin
|
||||
# DATE: 2023-12-07
|
||||
# Descripion: A simple makefile for building and flashing hex files
|
||||
|
||||
# Makefile for ATtiny13A
|
||||
|
||||
# Compiler
|
||||
CC = avr-gcc
|
||||
|
||||
#Default cpu frequency is 9.8Mhz, 4.8 gives us less power consumption
|
||||
#F_CPU = 1000000UL
|
||||
F_CPU = 4800000UL
|
||||
#F_CPU = 9800000UL
|
||||
MCU = attiny13a
|
||||
|
||||
# Flags
|
||||
CFLAGS = -g -Os -mmcu=$(MCU) -DF_CPU=$(F_CPU)
|
||||
LDFLAGS = -Wl,-Map,$(TARGET).map
|
||||
|
||||
# Source files
|
||||
SRC = main.c
|
||||
|
||||
# Object files
|
||||
OBJ = $(SRC:.c=.o)
|
||||
|
||||
# Target HEX file
|
||||
TARGET = main
|
||||
|
||||
# Flashing options
|
||||
AVRDUDE = avrdude
|
||||
AVRDUDE_PROGRAMMER = -c usbasp
|
||||
BUADRATE = -B 125kHz
|
||||
AVRDUDE_PORT = -P /dev/ttyUSB0
|
||||
AVRDUDE_MCU = -p $(MCU)
|
||||
|
||||
|
||||
# Compile and generate HEX file
|
||||
all: $(TARGET).hex
|
||||
|
||||
$(TARGET).hex: $(TARGET).elf
|
||||
avr-objcopy -j .text -j .data -O ihex $< $@
|
||||
|
||||
$(TARGET).elf: $(OBJ)
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
size: $(TARGET).o
|
||||
avr-size --mcu=$(MCU) -t ./$(TARGET).o
|
||||
# Default for the attiny13a is going to be 9.6Mhz
|
||||
flash_defualt_fuses:
|
||||
$(AVRDUDE) $(AVRDUDE_PROGRAMMER) $(AVRDUDE_PORT) $(AVRDUDE_MCU) $(BUADRATE) -U lfuse:w:0x6A:m -U hfuse:w:0xFF:m -U lock:w:0xFF:m
|
||||
# This is for 4.8Mhz
|
||||
flash_slow_fuse:
|
||||
$(AVRDUDE) $(AVRDUDE_PROGRAMMER) $(AVRDUDE_PORT) $(AVRDUDE_MCU) $(BUADRATE) -U lfuse:w:0x69:m -U hfuse:w:0xFF:m -U lock:w:0xFF:m
|
||||
flash_slow_nodiv8:
|
||||
$(AVRDUDE) $(AVRDUDE_PROGRAMMER) $(AVRDUDE_PORT) $(AVRDUDE_MCU) $(BUADRATE) -U lfuse:w:0x79:m -U hfuse:w:0xFF:m -U lock:w:0xFF:m
|
||||
flash: $(TARGET).hex
|
||||
$(AVRDUDE) $(AVRDUDE_PROGRAMMER) $(AVRDUDE_PORT) $(AVRDUDE_MCU) $(BUADRATE) -U flash:w:$(TARGET).hex:i
|
||||
|
||||
clean:
|
||||
rm -f $(OBJ) $(TARGET).elf $(TARGET).hex $(TARGET).map
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
|
||||
|
||||
|
||||
|
||||
242
otto.sh
242
otto.sh
|
|
@ -1,242 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Author: Jake Goodwin
|
||||
# Date: 2024
|
||||
# Filename: otto.sh
|
||||
|
||||
CROSS_TC_WIN="$(pwd)/i686-w64-mingw32_toolchain.cmake"
|
||||
CMAKE_VERBOSE="ON"
|
||||
CROSS_COMPILE=1
|
||||
TEMPLATE_FILES=".template_files"
|
||||
MODULE_DIR="${TEMPLATE_FILES}/modules"
|
||||
|
||||
|
||||
add_compile_commands () {
|
||||
if [ -f ./compile_commands.json ]; then
|
||||
echo "compile_commands.json already exists!\n"
|
||||
else
|
||||
echo "Creating new symlink for compile commands!\n"
|
||||
ln -s ./build/compile_commands.json ./compile_commands.json
|
||||
fi
|
||||
}
|
||||
|
||||
clear_cmake_cache () {
|
||||
cd ./build
|
||||
rm -rf CMakeCache.txt CMakeFiles/
|
||||
}
|
||||
|
||||
|
||||
does_module_exist () {
|
||||
local basename="$1"
|
||||
|
||||
if [ -d "src/${basename}" ]; then
|
||||
echo "1"
|
||||
else
|
||||
echo "0"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
add_module_to_cmakes () {
|
||||
local basename="$1"
|
||||
|
||||
echo "add_subdirectory(${basename})" >> ./src/CMakeLists.txt
|
||||
|
||||
# Tests cmake file needs to be edited in place.
|
||||
sed -i'' "s/# TEST_DIRS.*$/# TEST_DIRS\r\nadd_subdirectory(${basename})/g" ./tests/CMakeLists.txt
|
||||
sed -i'' "s/# TEST_LINKS.*$/# TEST_LINKS\r\n\t${basename}/g" ./tests/CMakeLists.txt
|
||||
}
|
||||
|
||||
remove_module_from_cmakes () {
|
||||
local basename="$1"
|
||||
|
||||
sed -i'' "s/^.*add_subdirectory(${basename}).*$//g" ./src/CMakeLists.txt
|
||||
sed -i'' "s/^.*add_subdirectory(${basename}).*$//g" ./tests/CMakeLists.txt
|
||||
sed -i'' "s/^.*${basename}.*$//g" ./tests/CMakeLists.txt
|
||||
}
|
||||
|
||||
git_add_module () {
|
||||
|
||||
local basename="$1"
|
||||
|
||||
read -p "Auto add to git?(y/n):" CHOICE
|
||||
if [ "${CHOICE}" = "n" ]; then
|
||||
echo "not being added!"
|
||||
return 0
|
||||
fi
|
||||
|
||||
modsrc_dir="./src/${basename}"
|
||||
modtest_dir="./tests/${basename}"
|
||||
|
||||
# Now we add the new files to the git tracked files
|
||||
git add ${modsrc_dir}/*
|
||||
git add ${modsrc_dir}
|
||||
git add ${modtest_dir}/*
|
||||
git add ${modtest_dir}
|
||||
git add ./src/CMakeLists.txt
|
||||
git add ./tests/CMakeLists.txt
|
||||
}
|
||||
|
||||
|
||||
git_remove_module () {
|
||||
local basename="$1"
|
||||
|
||||
read -p "Auto del from git?(y/n):" CHOICE
|
||||
if [ "${CHOICE}" -eq "n" ]; then
|
||||
echo "not being removed!"
|
||||
return 0
|
||||
fi
|
||||
|
||||
modsrc_dir="./src/${basename}"
|
||||
modtest_dir="./tests/${basename}"
|
||||
|
||||
# Now we add the new files to the git tracked files
|
||||
git rm -r ${modsrc_dir}/*
|
||||
git rm -r ${modsrc_dir}
|
||||
git rm -r ${modtest_dir}/*
|
||||
git rm -r ${modtest_dir}
|
||||
git rm -r ./src/CMakeLists.txt
|
||||
git rm -r ./tests/CMakeLists.txt
|
||||
}
|
||||
|
||||
|
||||
add_new_module () {
|
||||
read -p "Enter the name of the module:" modname
|
||||
|
||||
result=$(does_module_exist "$modname")
|
||||
|
||||
if [ "${result}" -eq "1" ]; then
|
||||
echo "Module already exists!"
|
||||
echo "Exiting without changing anything"
|
||||
exit
|
||||
fi
|
||||
|
||||
modname_cap=$(echo $modname | sed 's/[a-z]/\U&/g')
|
||||
modsrc_dir="./src/${modname}"
|
||||
modtest_dir="./tests/${modname}"
|
||||
|
||||
echo "creating: ${modsrc_dir}, ${modtest_dir}"
|
||||
mkdir $modsrc_dir
|
||||
mkdir $modtest_dir
|
||||
|
||||
#copy the template files.
|
||||
echo "copying & customizing template files..."
|
||||
|
||||
sed "s/module_name/${modname}/" $MODULE_DIR/module_name.c > $modsrc_dir/${modname}.c
|
||||
sed -i'' "3s/todays_date/$(date +%Y)/" $modsrc_dir/${modname}.c
|
||||
|
||||
sed "s/module_name/${modname_cap}/" $MODULE_DIR/module_name.h > $modsrc_dir/${modname}.h
|
||||
sed -i'' "3s/todays_date/$(date +%Y)/" $modsrc_dir/${modname}.h
|
||||
|
||||
sed "s/module_name/${modname}/" $MODULE_DIR/CMakeLists.txt > $modsrc_dir/CMakeLists.txt
|
||||
|
||||
sed "s/module_name/${modname}/" $MODULE_DIR/test_module_name.cpp > $modtest_dir/test_${modname}.cpp
|
||||
sed "s/module_name/${modname}/" $MODULE_DIR/TestCMakeLists.txt > $modtest_dir/CMakeLists.txt
|
||||
|
||||
# Add the module to the cmake lists files.
|
||||
add_module_to_cmakes "${modname}"
|
||||
|
||||
echo "Resulting files/dirs:"
|
||||
tree -L 2 $modsrc_dir
|
||||
tree -L 2 $modtest_dir
|
||||
|
||||
# Now we add the new files to the git tracked files
|
||||
git_add_module "${modname}"
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
del_module () {
|
||||
read -p "Enter the name of the module:" modname
|
||||
|
||||
rm -r ./tests/${modname}
|
||||
rm -r ./src/${modname}
|
||||
remove_module_from_cmakes "${modname}"
|
||||
}
|
||||
|
||||
cross_compile () {
|
||||
echo "ERROR: Currently no toolchain / target!"
|
||||
}
|
||||
|
||||
build_release() {
|
||||
clear_cmake_cache
|
||||
cmake -DCAM_HANDLER_LIB=ON -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE} ../
|
||||
make
|
||||
}
|
||||
|
||||
build_main () {
|
||||
clear_cmake_cache
|
||||
|
||||
cmake -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE} ../
|
||||
make main
|
||||
}
|
||||
|
||||
run_c_tests () {
|
||||
clear_cmake_cache
|
||||
cmake -DUNIT_TESTING=ON -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE} ../
|
||||
make AllTests && ./tests/AllTests
|
||||
}
|
||||
|
||||
print_menu () {
|
||||
echo "BUILD MENU:"
|
||||
echo "1. Run Tests"
|
||||
echo "2. Build Project"
|
||||
echo "3. Build for release"
|
||||
echo "4. cross compile for XXXXXX"
|
||||
echo "5. Add new module to project"
|
||||
echo "6. Delete module from project"
|
||||
echo "7. Exit"
|
||||
}
|
||||
|
||||
|
||||
main() {
|
||||
add_compile_commands
|
||||
valid_choice=false
|
||||
|
||||
while [ "$valid_choice" != true ]; do
|
||||
print_menu
|
||||
read -p "Enter your choice: " choice
|
||||
|
||||
case $choice in
|
||||
1)
|
||||
echo "You selected Option 1"
|
||||
valid_choice=true
|
||||
run_c_tests
|
||||
;;
|
||||
2)
|
||||
echo "You selected Option 2"
|
||||
valid_choice=true
|
||||
build_main
|
||||
;;
|
||||
3)
|
||||
echo "You selected Option 3"
|
||||
valid_choice=true
|
||||
build_release
|
||||
;;
|
||||
4)
|
||||
echo "You selected Option 4"
|
||||
valid_choice=true
|
||||
cross_compile
|
||||
;;
|
||||
5)
|
||||
echo "You selected Option 5"
|
||||
valid_choice=true
|
||||
add_new_module
|
||||
;;
|
||||
6)
|
||||
echo "You selected Option 6"
|
||||
valid_choice=true
|
||||
del_module
|
||||
;;
|
||||
7)
|
||||
echo "Exiting..."
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Invalid choice. Please select a valid option."
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
main
|
||||
65
pre_built/attiny13_4-8Mhz.hex
Normal file
65
pre_built/attiny13_4-8Mhz.hex
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
:1000000009C016C015C067C113C012C011C010C00E
|
||||
:100010000FC00EC011241FBECFE9CDBF20E0A0E667
|
||||
:10002000B0E001C01D92A637B207E1F79ED1DFC153
|
||||
:10003000E7CFFC0180811182887F877F8083628384
|
||||
:10004000438397B321E030E0A90101C0440F6A95D2
|
||||
:10005000EAF7842F8095892387BB48B3C9010280C2
|
||||
:1000600002C0880F991F0A94E2F7842B88BB47B31C
|
||||
:10007000C901038002C0880F991F0A94E2F7842BFC
|
||||
:1000800087BB88B3038002C0220F331F0A94E2F7B4
|
||||
:100090002095282328BB0895FC019081338191FD90
|
||||
:1000A0000BC09260908328B381E090E001C0880F7C
|
||||
:1000B0003A95EAF7822B0BC09D7F908328B381E0AD
|
||||
:1000C00090E001C0880F3A95EAF78095822388BBBB
|
||||
:1000D0000895CF93DF93EC01888180FF13C0982FA0
|
||||
:1000E0009C7039F4CE01D8DF888119828B7F8860BB
|
||||
:1000F00007C083FF10C09981923468F08460877FC5
|
||||
:10010000888309C082FF02C0CE01C6DF8881877F55
|
||||
:100110008B7F88831982DF91CF9108958FEF809331
|
||||
:10012000750041E062E081E790E083DF44E063E056
|
||||
:100130008AE690E07EDF8FE697E10197F1F700C055
|
||||
:100140000000E199FECF80E090E03DD18A3A99F439
|
||||
:1001500081E090E038D19091710080FB91F990930B
|
||||
:10016000710082E090E02FD190916A0080FB91F9BC
|
||||
:1001700090936A000CC06AEA80E090E02BD160E0C6
|
||||
:1001800081E090E027D160E082E090E023D186B367
|
||||
:1001900090E00090730002C0959587950A94E2F76D
|
||||
:1001A0008170992721E082272091710080FB20F93E
|
||||
:1001B0002093710086B390E000906C0002C095958A
|
||||
:1001C00087950A94E2F78170992731E0832790910F
|
||||
:1001D0006A0080FB90F990936A0020FD05C0809131
|
||||
:1001E0006A0080FF3AC01DC021FB662760F981E0EC
|
||||
:1001F000682760FB21F92093710081E090E0EAD04C
|
||||
:1002000084E022E098B3922798BB4FEF9DEE32E056
|
||||
:10021000415090403040E1F700C00000815091F71C
|
||||
:10022000DECF81FB662760F991E0692760FB81F9E9
|
||||
:1002300080936A0082E090E0CDD084E020E198B322
|
||||
:10024000922798BB4FEF9DEE32E0415090403040F6
|
||||
:10025000E1F700C00000815091F78091710081FFAB
|
||||
:100260000CC028B381E090E00090740002C0880FB9
|
||||
:10027000991F0A94E2F7822B88BB80916A0081FF64
|
||||
:100280000CC028B381E090E000906D0002C0880FA0
|
||||
:10029000991F0A94E2F7822B88BB10926F0010928C
|
||||
:1002A0006E001FBC13BE83B7836083BF789412BEF9
|
||||
:1002B00089B7826089BF0895BB9A98E088B389277F
|
||||
:1002C00088BB2FE739EA83E0215030408040E1F7D6
|
||||
:1002D00000C00000F3CF1F920F920FB60F921124AF
|
||||
:1002E0002F933F938F939F93EF93FF93F894E09115
|
||||
:1002F0007000F0E086B3E05AFF4F80838091700079
|
||||
:100300008F5F8093700080E090E02FEFFC01E05A57
|
||||
:10031000FF4F3081232301968A309105B9F720934E
|
||||
:100320007500809170008A3010F0109270008091FA
|
||||
:10033000710083FF05C0809172008F5F809372000F
|
||||
:1003400080916A0083FF05C080916B008F5F80936E
|
||||
:100350006B007894FF91EF919F918F913F912F9136
|
||||
:100360000F900FBE0F901F901895D8DE81E790E098
|
||||
:10037000B0DE8AE690E0ADDE2091750030E00090BE
|
||||
:10038000730002C0359527950A94E2F780917100B9
|
||||
:1003900020FF02C08E7F01C0816080937100209198
|
||||
:1003A000750030E000906C0002C0359527950A94E6
|
||||
:1003B000E2F780916A0020FF02C08E7F01C0816059
|
||||
:1003C00080936A00D3CFE199FECF8EBBE09A992744
|
||||
:1003D0008DB30895262FE199FECF1CBA8EBB2DBB9D
|
||||
:1003E0000FB6F894E29AE19A0FBE01960895F89438
|
||||
:0203F000FFCF3D
|
||||
:00000001FF
|
||||
86
setup.sh
86
setup.sh
|
|
@ -1,86 +0,0 @@
|
|||
#!/bin/sh
|
||||
#Author: Jake G
|
||||
#Date: 2024
|
||||
#Filename: setup.sh
|
||||
|
||||
PKG_MNGR=""
|
||||
DEBIAN=0
|
||||
FBSD=0
|
||||
SYSINSTALL=0
|
||||
DEV_UTILS="vim tmux fzf"
|
||||
|
||||
|
||||
install_dev_utils () {
|
||||
ICMD=""
|
||||
if [ $DEBIAN -eq 1 ]; then
|
||||
ICMD="sudo apt install"
|
||||
elif [ $FBSD -eq 1 ]; then
|
||||
ICMD="sudo pkg install"
|
||||
fi
|
||||
|
||||
for util in $DEV_UTILS
|
||||
do
|
||||
${ICMD} ${util}
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
check_os () {
|
||||
if [ -f /etc/debian_version ]; then
|
||||
DEBIAN=1
|
||||
elif [ -f /etc/freebsd-update.conf ]; then
|
||||
FBSD=1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
remove_template_examples () {
|
||||
echo "does nothing right now"
|
||||
}
|
||||
|
||||
|
||||
install_needed_dependencies () {
|
||||
# Check the OS
|
||||
echo "checking the OS..."
|
||||
# If it's debian based then apt install
|
||||
|
||||
# If it's freeBSD then pkg
|
||||
|
||||
# If it's windows....you're SOL
|
||||
}
|
||||
|
||||
|
||||
create_project_symlinks () {
|
||||
# Allows the clangd LSP to find it.
|
||||
ln -s ./build/compile_commands.json ./compile_commands.json
|
||||
}
|
||||
|
||||
|
||||
build_cpputest () {
|
||||
git submodule add https://github.com/cpputest/cpputest.git
|
||||
git sumodule status
|
||||
cd ./cpputest/build
|
||||
cmake ../
|
||||
|
||||
if [ SYSINSTALL -eq 1]; then
|
||||
make install
|
||||
else
|
||||
make
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# The default setup stuff.
|
||||
default () {
|
||||
remove_template_examples
|
||||
install_needed_dependencies
|
||||
create_project_symlinks
|
||||
}
|
||||
|
||||
setup() {
|
||||
echo "Setting up env"
|
||||
check_os
|
||||
install_dev_utils
|
||||
}
|
||||
|
||||
setup
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
add_executable(main
|
||||
main.c
|
||||
)
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
#include "CppUTest/CommandLineTestRunner.h"
|
||||
|
||||
|
||||
//ImportTestGroups
|
||||
IMPORT_TEST_GROUP(simple_test);
|
||||
|
||||
//START: main
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
return RUN_ALL_TESTS(argc, argv);
|
||||
}
|
||||
//END: main
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
project(Tests)
|
||||
|
||||
# TEST_DIRS
|
||||
add_subdirectory(simple_test)
|
||||
|
||||
# TEST_RUNNER
|
||||
add_executable(AllTests
|
||||
AllTests.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(AllTests
|
||||
${CPPUTEST_LIBRARIES}/libCppUTest.a
|
||||
${CPPUTEST_LIBRARIES}/libCppUTestExt.a
|
||||
# TEST_LINKS
|
||||
simple_test
|
||||
)
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
|
||||
# TEST_RUNNER
|
||||
add_library(simple_test
|
||||
simple_test.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(simple_test
|
||||
${CPPUTEST_LIBRARIES}/libCppUTest.a
|
||||
${CPPUTEST_LIBRARIES}/libCppUTestExt.a
|
||||
)
|
||||
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
#include "CppUTest/TestHarness.h"
|
||||
|
||||
/*
|
||||
extern C
|
||||
{
|
||||
#include "simple.h"
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
TEST_GROUP(simple_test)
|
||||
{
|
||||
void setup()
|
||||
{
|
||||
|
||||
}
|
||||
void teardown()
|
||||
{
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
TEST(simple_test, passing_test)
|
||||
{
|
||||
CHECK_TRUE(1);
|
||||
}
|
||||
BIN
zadig-2.8.exe
Normal file
BIN
zadig-2.8.exe
Normal file
Binary file not shown.
Loading…
Add table
Reference in a new issue