- CMakeLists.txt, src/CMakeLists.txt: user ARCH for the actual
processor, and ARCH_FAMILY to specify the arch_*.[ch] files.
- generic-gcc-avr.cmake: fix optimizations to O1 or O0
- make-targets.sh: simplify cmake invocation, eliminate mkdir+cd,
instead use cmake flags to specify directory names and source dir.
replaced "asdf-" in target name with ${PROJECT_NAME}-, so now setting
project name (and version) in the project section will result in a
properly named result.
- Add a documentation directory to start documenting the firmware in
sphinx.
c
- Fix cmake scripts to generate files needed to make hex files available
for download
- expand build script to automate the cmake file generation and builds
for each architecture, install the python virtual environment needed for
sphinx, and and to populate the sphinx source tree with links to built
hex files.
- GCC version 12 generates a warnings for certain pointer
references. Apparently this is to decect invalid offsets. To properly
compiler, the recommended remedy is to add the compiler option
"--param=min-pagesize=0" to the flags. This option was introduced in
version 11.3, so we need to check the compiler version and only add for
>11.3.
- Moved setting of compiler flags to a new function c_toolchain_flags in
the toolchain file "generic-gcc-avr.cmake". This function is now called
from the CMakeLists.txt file in the src directory. This allows the test
for the compiler version to be specified in the toolchain file, but not
executed until called by the src subdir CMakeLists.txt. Delaying
evaluation of the function ensures that the CMAKE_C_VERSION variable is
properly set when the function is called.
- Moving the compiler flags out of the source dir CMakeLists.txt file
also improves portability by moving architecture-specific compiler
details from the source tree to the toolchain file.
Was only testing for handle less than next_handle, but not checking for
negative handle values. Fixed to use buffer_handle_valid() to test for a
valid handle.
- added keymap_setup() function to keymap tests
- The test string was not long enough to overflow the larger buffer.
Switched to use pseudo-random sequence intstead of a fixe test string.
factor out common code and add back wrappers, so keyboard initializes to
default keyboard on power up, and afterwards, won't reinitialize the
keyboard unless the map changes.
- update ARCHITECTURE-keymaps.org file for new keymap definition method
- remove unused keymap table template files
- in keymap_setup.c template, set default to keymap 0.
- Added the apple 2 CAPS map
- auto-generate a function to check validity of a keymap index
- Added buffered message printing. This is different from keycode
buffering, since an extra delay is added for each message character to
allow polling hosts to keep up. Keycodes are generated at human speeds
and need no further slowdown.
- Added a message character delay to the arch-* modules
- enlarged the buffer pool, and created a buffer for messages
- bumped version number
Accessing library functions via function pointer seems to cause a reset.
Still investigating the cause.
- compile keymaps subdir as part of main src cmakefile, rather than as a
separate library.
- rather than setup table of function pointers and using an indirection
in the main code, set up a jump table (switch). This is cleaner.
This appears to have been a cut-paste typo in the asdf_arch_out2_set() function
in asdf_arch_atmega328p.c. The port was set to OUT2, but the bit was OUT1.