View source
Author Commit Message Date Builds
g3gg0
fixed late evaluation issue in rule builder
Alex
Merged new-dryos-task-hooks into lua_fix
Alex
550D, 600D: reserve 576K for ML (640 is a bit too much, 512 is too tight)
Alex
Merged makefile-updates into lua_fix
Alex
Makefile: rules for "make install_qemu" (to use them, qemu has to be installed first)
Alex
Lua: initial sketch for camera.gui (Canon GUI modes) Moved display.idle to camera.gui.idle; removed camera.state
Alex
gui-common: exit_menu_mode; minor fix in exit_play_qr_mode
Alex
gui-common: enter_menu_mode
Alex
Moved enter_play_mode, exit_play_qr_mode and PLAY/MENU status helpers to gui-common
Alex
Lua: lv.vidmode (current video mode, as string) API tests included
Alex
get_video_mode_name: handle paused LiveView mode (PAUSED-LV) and regular photo mode outside LiveView (PH-NOLV)
Alex
Lua: lv.overlays (status of Canon/ML overlays in LiveView) API test included
Alex
Lua: console.visible (status) API tests updated
Alex
Lua: lens.autofocusing (status) API test included (requires user to start autofocusing, as lens.autofocus() blocks until finished)
Alex
lua_key.c: fix warning
Alex
Lua: fix led_blink, issue #2808
Alex
Merged unified into lua_fix
Alex
Makefile: with WIFI_SD=y, ping the card until it comes online (useful for router connections)
Alex
Makefile: portable way to get number of processors
g3gg0
further makefile cleanup, added make check to show which models were built and their memory usage
g3gg0
fix 'all' target for models
g3gg0
removed explicit make executable definition. allows to run e.g. 'remake' to debug make rules
g3gg0
reworked model make rules to support different firmware versions for a model [to be thoroughly tested]
g3gg0
disable ASSERT for 7D_MASTER
Alex
Makefile: also print CONFIG overrides from command-line (alongside the ones from Makefile.user)
Alex
Makefile: print tips for using make -j (how to set it by default in Makefiles?)
Alex
Makefile: silence warning about CONFIG_SITE (some recent Linux distros use it)
Alex
Makefile: portable way to get libgcc.a's path
Alex
Makefile: removed old dropbox target
Alex
Makefile: print build info after "make zip"; skip EXIDX line
Alex
Makefile: fix CONFIG_CCACHE
Alex
Makefile: use "gio mount" rather than "gvfs-mount" (they are interchangeable; older systems may require gvfs-mount, newer systems will print warnings)
Alex
Task hooks: fix task overriding on very old DryOS models (to be tested on all camera models)
Alex
Makefile: if no valid ARM GCC is found in PATH, try to find one in the home directory
Alex
selftest: check handling of null pointer errors (make sure a crash log is saved) 100D and 70D used to crash in this scenario, rather than saving a log http://www.magiclantern.fm/forum/index.php?topic=16040.msg190279#msg190279 (next few pages)
Alex
Merged unified into new-dryos-task-hooks
Alex
Makefile: fix compiling tcc
Alex
Makefile: moved toolchain setup to Makefile.setup (this allows toolchain to be overridden from Makefile.user)
Alex
Makefile: fixes to allow compiling ML with Linaro arm-eabi-gcc; updated toolchain recommendations
Alex
Makefile: updated toolchain recommendation; minor edits
Alex
Makefile: attempt to use any arm-none-eabi-gcc from PATH, if already installed (to be tested) By default, it will attempt to use ~/gcc-arm-none-eabi-5_4-2016q3 if installed.
Alex
Makefile: use gcc 5.4.1 by default (current version from https://launchpad.net/gcc-arm-embedded )
Alex
tskmon: in null pointer check, retrieve last last task name directly, rather than calling is_taskid_valid also fixed some possible null pointer bugs in the... null pointer checking code (fixes crash when reporting null pointer on 100D and likely on all other cameras with new-style DryOS hooks)
Alex
selftest: save the stub test log in ML/LOGS
Alex
selftest: include the stub test summary in the log file
Alex
sokoban.lua: save current level in the config file (simple script using the "config" library)
Alex
sokoban.lua: refactored the main loop; fixed missing "you win" message
Alex
Lua: trigger the config_save event after running the main body of a script (this allows simple scripts to use the config library)
Alex
Lua: minor error handling cleanup (simplified logic)
David Milligan
config.lua fixes
Alex
console: fix displayed size when console has many empty lines
Alex
Lua: clear console when starting a script from menu
Alex
Lua: refactored iterations through lua_script list (use a getter for lua_State -> lua_script mapping whenever possible)
Alex
Lua: use a message queue for key.wait() (fixes missed key presses caused by race conditios, including quick press/release)
Alex
Lua: moved script semaphores into struct lua_script (refactor)
Alex
Lua: refactored lua_take_semaphore calls - checking for success: if (result == 0) instead of if(!result) - checking whether "sem" was set: use assert (rather than giving the same error message as a semaphore timeout)
Alex
Lua: disable powersave for simple scripts
Alex
menu: fix null pointer issue in dynamic menus
Alex
menu: fix regression in Modified menu (with API tests)
Alex
menu: removed obsolete menu screenshots
Alex
menu: workaround for file_man (fixme: still relying on name lookup to find submenus)
Alex
menu: store submenu parent in the menu structure; more submenu fixes
Alex
Makefile: with WIFI_SD=y, ping the card until it comes online (useful for router connections)
Alex
menu: allow is_menu_entry_selected to operate on submenus (for Lua menu.select; updated api_test.lua)
Alex
menu: refactored submenu selection to avoid duplicate code; minor rename
Alex
menu: removed side effects from get_current_submenu
Alex
menu: allow submenu selection by name (updated api_test.lua)
Alex
menu: fix parent menu issues in composite submenus
Alex
menu: refactored to fix thread safety in menu_add
Alex
menu: fix parent menu issues in most menus (todo: composite submenus)
Alex
menu: check whether each submenu entry actually has a parent (fixme: most don't)
Alex
menu: if the value field is very long, do not display the name (the value is probably verbose enough to figure out what it is)
Alex
Modules: moved Show console to top level
Alex
Memory backend: when checking available memory, allocate both Shoot ans SRM at the same time (they may overlap)
Alex
debug: reworked "Show GUI Events" to use the console
Alex
gui_common: removed unused ui_lock (everything calls gui_uilock instead)
Alex
console: enable in LiveView alongside with ML overlays (experimental)
Alex
Memory backend: fix initialization
Alex
Menu: use submenu_height for scrolling
Alex
ettr: fix debug code
Alex
Merged unified into lua_fix
Alex
menu: do not discard customization data for menus that are not yet loaded (e.g. for modules/scripts and other dynamic menus)
Alex
menu: do not overwrite existing customization data when reloading (only reload data for newly added menu entries)
Alex
menu: fix usage counters for menu items with placeholders
Alex
menu: allow simple submenus in Recent menu
Alex
menu: allow Debug entries in Junkie mode
Alex
Modules: make sure we can really use up to 64 of them (fix commit 8ad0912)
Alex
file_man: show status in main menu, if busy
Alex
file_man: disable powersaving during long copy/move operations
Alex
file_man: unified FileCopy and FileMove tasks to avoid duplicate code; report all errors to console and show a simple progress indicator
Alex
file_man: show timestamp for each file; align date/time column
Alex
menu: fix Junkie short text overflowing in some cases
Alex
menu: attempt to balance the automatic My Menu in Junkie mode (with many submenu entries used frequently, this menu could end up a lot more cluttered than regular menus)
Alex
menu: fix submenu entries disappearing in Junkie menu (frequently used submenu items shouldn't be moved to My Menu; they should be just copied)
Alex
menu: better duplicate menu warning; minor rename
Alex
6D: 592K reserved at the beginning of AllocateMemory (simpler code)
Alex
Merged qemu into new-dryos-task-hooks
Alex
Merged unified into new-dryos-task-hooks
Alex
boot-hack: fix wrong comments (AllocateMemory != system memory)
Alex
Merged backtrace into qemu
Alex
GDB scripts: comment out DebugMsg (prefer -d debugmsg instead)
Alex
run_canon_fw.sh: identify DebugMsg from GDB script if not set (moved from run_tests.sh) also print command-line after clearing the screen
Alex
QEMU: GDB scripts for 50D and 6D
Alex
backtrace: moved sources to src/ to avoid symlinking (cross-platform issues) and let the install script figure it out
Alex
Merged backtrace into qemu
Alex
Merged unified into qemu
Alex
backtrace: brute force stack scanning as backup strategy (idea from g3gg0: gdb.c, gdb_get_callstack)
Alex
backtrace: fix BKT_RANDOM_BRANCHES experiment
Alex
backtrace: BX LR is never encountered during tests
Alex
backtrace: fix stack overflow
Alex
run_ml_all_cams: fix missing quote
Alex
QEMU logging: backtrace test script
Alex
run_ml_all_cams: prefer single quotes instead of \$ for options
Alex
run_ml_all_cams: allow full customization of log file name
Alex
Stack traces for crash and assert logs, using the backtrace backend
Alex
Updated backtrace.c to work on the camera as well (same source file for both QEMU and ML)
Alex
arm-mcr.h: fixed read_lr (not sure what the problem was) and added read_sp
Alex
QEMU logging: experimental stack trace routine (backtrace) that does not require prior instrumentation it attempts to walk the stack, emulating instructions that change LR, SP, function returns and tail calls some more experiments and self-tests are available as compile-time options this method can be adapted to run on the camera as well
Alex
run_ml_all_cams: fix copying zip to SD/CF image
Alex
QEMU logging: fix assertion when printing callstack from interrupts on Thumb code
Alex
QEMU logging: save/restore callstack exec state for each DryOS task when handling interrupts This fixes calls/returns that were missed if an interrupt happened exactly before the jump (non-deterministic issue; was fairly rare and not obvious)
Alex
QEMU logging: indent now public (eos_indent); larger buffer
Alex
QEMU logging: CALL_LOCATION for eos_callstack_get_caller_param; fix CALL_DEPTH
Alex
QEMU logging: overriding LR no longer needed in call_stack_push
Alex
run_ml_all_cams: fix copying zip to SD/CF image
Alex
QEMU logging: do not report jumps from tight loops otherwise, some loops would print a huge amount of jumps (unnecessary) these would slow down certain tests a lot, e.g. 5D3 callstack on fromutility
Alex
QEMU logging: record direct jumps to function calls (many such calls in DIGIC 6)
Alex
QEMU logging: log task switches before other items otherwise, consistency errors may appear - see test_callstack.py minor differences in VxWorks tests
Alex
QEMU: ignore CBZ (on Thumb-2 code)
Alex
run_ml_all_cams: use multi-line QEMU_SCRIPT's (nicer formatting)
Alex
run_ml_all_cams: fix BOOT=0
Alex
run_ml_all_cams: fix ML_PLATFORMS when not specified
Alex
QEMU: 650D GUI
Alex
QEMU: 650D GUI (including tests)
Alex
QEMU: 1300D updates - SD interrupts (DCIM test passed) - HDMI status (minor) - GDB script updated for latest firmware - patch JPCORE (fixes assert)
Alex
QEMU tests: removed MENU_CAMS (all GUI_CAMS are now able to browse Canon menu)
Alex
QEMU: 70D menu tests (format test not working)
Alex
QEMU tests: only print ROMCPY messages before the first interrupt
Alex
QEMU: options for run_ml_all_cams.sh to compile and run a given set of ML platforms, from any HG changeset
Alex
QEMU: updated splitgdb.sh as discussed on EOS M2 thread http://www.magiclantern.fm/forum/index.php?topic=15895.msg186245#msg186245
Alex
QEMU: flush after qprintn, so the output will appear right away
Alex
QEMU logging: handle %c with -debugmsg
Alex
QEMU logging: minor fixes for -d autoexec
Alex
QEMU: updated 5D4 GDB script and tests for 1.0.4
Alex
QEMU logging: workaround to handle some missing return from interrupts (updated 600D and 1100D unique function tests - they differ by one function)
Alex
QEMU: EOS M2 tests + patches.gdb
Alex
Alex
Merged in daniel_fort/magic-lantern/qemu-EOSM2-wip_1 (pull request #835) QEMU EOSM2 preliminary setup.
Daniel Fort
Updates to debugmsg.gdb
Daniel Fort
Found correct values by checking against 1.0.2 firmware.
Daniel Fort
I’m pretty sure “set *(int*)0xFF356DE8 = 0xe12fff1e” is wrong but everything else should be good.
Daniel Fort
Added EOSM2 to mph.c
Daniel Fort
Updated EOSM2 debugmsg.gdb file.
Daniel Fort
Added EOSM2.h file, copied from 100D.
Daniel Fort
Copied button codes from 100D to EOSM2.
Daniel Fort
Added EOSM2 in supported cameras list.
Daniel Fort
Added mpu registers to EOSM2 in model_list.c
Daniel Fort
Merged qemu into qemu-EOSM2-wip-1
Daniel Fort
Merged latest qemu commits
Daniel Fort
Merged in qemu commits
Daniel Fort
Daniel Fort
EOSM2 preliminary setup.
Alex
lua.c: fix warning
Alex
Lua: only hide the console if it was opened by some auto-running script (and block the key pressed to hide the console, if any)
Alex
Lua: block keys on key.wait() hello.lua updated to wait only for SET (and block only this key)
Alex
Merged unified into lua_fix
Alex
menu: fix invalid indexing on menu choices not starting at 0 (reported by JohanJ at http://www.magiclantern.fm/forum/index.php?topic=14828.msg186252#msg186252 )
Alex
Merged in daniel_fort/magic-lantern/qemu-build-tweaks-2 (pull request #836) Qemu build tweaks 2 Approved-by: Daniel Fort <dan@digiola.com>
Daniel Fort
-s option not needed with uname.
Daniel Fort
Check for mounted EOS_DIGITAL disk image handled differently on OS X.
Daniel Fort
Merged qemu into qemu-build-tweaks-2
Daniel Fort
Merged qemu into qemu to prevent multiple heads.
Daniel Fort
Changed shebang for portability. Missed these two scripts in my last pull request.
Daniel Fort
OS X doesn’t require root permissions to mount disk image.
Daniel Fort
Use hdiutil on OS X systems.
Daniel Fort
Merged in daniel_fort/magic-lantern/qemu-build-tweaks-1 (pull request #834)
Alex
selftest: fix bad merge
Alex
Merged cache-fixes into lua_fix
Alex
Merged unified into lua_fix
Alex
menu: attempt to fix file_man crash (a little hackish...)
Alex
file_man: disable name lookup on its submenu (should fix speed regression in directories with many files - to be tested)
Alex
api_test.lua: tests for image_prefix and for bracketed images
Alex
Lua: camera.wait() (waits until the image was fully saved; required for testing dryos.image_prefix)
Alex
Lua: renamed dryos.prefix to dryos.image_prefix and fixed various things - only accept strings of length 4, or empty string to reset to default - fix operation after multiple changes
Alex
menu: fix buffer overflow (off by one) when hiding many menu items
Alex
menu: disable name look-up in Modules and Help
Alex
menu: allow disabling name lookup in any menu (e.g. to allow duplicate names, or for very large menus, or for dynamic menus not meant to be customized etc)
Alex
menu: removed some redundant null pointer checks (no longer needed after enforcing valid names)
Alex
menu: revert empty name usage in menus (affected: module.c f071d67, file_man 6390eba, my_menu, advanced toggles) (todo: fix duplicate menus in some other way)
Alex
menu.h: comments for struct menu_entry and struct menu
Alex
menu: make sure internal fields are not set before menu_add
Alex
menu: require valid name for all menus (easier than fixing null pointer errors)
Alex
config.c: fix read from null pointer
Alex
Undo e64c9a5 (shutdown lock-up)
Alex
QEMU: updated reference data for sorted IDC tests on some models (100D, 700D, EOSM, 5D)
Alex
QEMU: 80D patches.gdb (required to run the stack trace check on a DIGIC 6 model with DryOS task switches)
Alex
QEMU logging: fix some rarely missed jumps (usually in return from interrupt)
Alex
QEMU logging: fix Thumb PC in call stack traces (for DIGIC 6)
Alex
QEMU test suite: check callstack consistency (whether verbose stack trace matches the call/return trace) (also checks context info, such as current task or interrupt)
Alex
QEMU: do not log UART messages when it's redirected to a file (-serial file:out.log)
Alex
QEMU: with -d calls, always align location information (insert a newline on very long lines) (updated tests)
Alex
QEMU: also log interrupt ID when using -d calls
Alex
QEMU: use verbose stack trace for DebugMsg and GDB scripts (each call on its own line - much more readable) to get callstack for every single DebugMsg, use "-d debugmsg,callstack,v" or, for GDB scripts: "-d callstack -s -S" for QEMU, "macro define PRINT_CALLSTACK 1" in the GDB script, without quotes)
Alex
QEMU: option to log DebugMsg calls natively, without GDB scripts (much faster; very similar to nkls' initial implementation)
Alex
QEMU: redirect the monitor console to qemu.monitor unix socket (to restore the old behavior, run with -monitor vc)
Alex
Merged in daniel_fort/magic-lantern/qemu-build-tweaks-1 (pull request #834) (fixes for building QEMU on Mac) QEMU build tweaks 1 Approved-by: Daniel Fort <dan@digiola.com>
Daniel Fort
Merged in latest qemu commits
Alex
QEMU: parameterized MPU spells for PROP_CARDn_STATUS; updated WriteProtect handling on most DIGIC 4/5 models (otherwise, these GUIs would show the card write-protected dialog)
Alex
QEMU: use timestamps to decide the relationship between MPU spells (only messages received shortly after a mpu_send call should be considered replies)
Alex
QEMU: warning about duplicate MPU spells (they will show where the communication may depend on state)
Alex
QEMU: include a description for each input MPU spell (updated extract_init_spells.py with definitions for some known spells)
Daniel Fort
Suppress printing an error message if the command isn’t found.
Daniel Fort
Changed shebang in bash scripts. This should make them more portable. An issue came up because the Macintosh uses an older version of bash in /bin/bash and we want to use a newer Homebrew installed version in /user/local/bin/bash without breaking other setups.
Alex
QEMU: parameterized MPU spells for UILock and NotifyGUIEVent
Alex
QEMU: parameterized MPU spells (experimental)
Alex
QEMU: incomplete half-shutter emulation (fixme: it should show the metering indicator or close menus/dialogs)
Alex
QEMU: menu navigation works on 5D3 1.1.3
Alex
QEMU logging: minor cleanups
Alex
QEMU logging: moved ABI checking in its own routine (minor refactor)
Alex
QEMU logging: moved -tasks in its own routine (much faster) note: task switching locations differ on VxWorks models after this change (they are approximate anyway)
Alex
QEMU logging: option to enable verbosity only when autoexec.bin is loaded (useful for new ports; bootloader can be very verbose with certain logging settings)
Alex
QEMU: exposed callstack to GDB and ML guest code based on nkls' first implementation of DebugMsg helper assert in gdb scripts now always prints the call stack
Alex
GDB scrips: task switch logging helper (pure GDB)
Alex
QEMU logging: stronger test for ML stubs (fixes some non-function symbols that appear when compiling ML with -ggdb)
Alex
Experimental debug info in magiclantern elf file it allows mapping from code address to source line (example: eu-addr2line -s -S -e magiclantern 0x50d60) it should not end up in autoexec.bin or affect it in any way
Alex
QEMU logging: attempt to guess strings and named functions in call/return trace (adapted from dm-spy-experiments) (self-test results updated)
Alex
qemu-util now always available (in dryos.h) (these functions are only compiled with CONFIG_QEMU=y; otherwise they are just type-checked and optimized out)
Alex
boot-hack: fix boot with CONFIG_QEMU on some models (qprintf/vsnprintf reboots the camera because it's not yet initialized) also added a safeguard to prevent such mistakes
Alex
QEMU test suite: fix PowerShot tests using wrong debugmsg.gdb
Alex
QEMU logging: fix copy/paste error in ROM block autodetection
Alex
QEMU logging: explicit option to show task switches (rather than hijacking callstack)
Alex
QEMU test suite: list memory blocks copied from ROM during bootloader tests (both EOS and PowerShot firmwares)
Alex
QEMU logging: allow ROM block copying in arbitrary increments, up to 128-bit mixing memory access sizes is allowed too the block must be copied sequentially, from left to right or from right to left or mixed, with no gaps at any moment during the copy operation copying e.g. 16 bytes from/to offset 0, 16 bytes f/t 0x10, 4 bytes f/t 0x20 and 1 byte f/t 0x24 will be considered a 0x25-byte block but copying 16 bytes f/t offset 0, 4 bytes f/t 0x14 and then 4 bytes f/t 0x10 will…
Alex
QEMU logging: experimental option for finding memory blocks copied from ROM to RAM (only 32-bit sequential copies for now)
Alex
QEMU logging: fix memory logging selection in complex cases e.g. romr,ramw should only log ROM reads and RAM writes in simple cases (such as just romr or just ramw), hooks are installed only for the selected operation (read or write) in these cases, additional checks will be redundant however, with complex cases such as romr,ramw, hooks are installed for all reads and and all writes so we can no longer rely on the hooks (being installed or not) for filteri…
Alex
QEMU logging: fix task info on Eeko
Alex
QEMU logging: quiet some jumps that are not function calls (frequently used on Thumb-2)
Alex
QEMU: fix CSS in HTML logs from subdirectories
Alex
QEMU scripts: allow loading symbols from any ML target (e.g. minimal, installer)
Alex
QEMU: .current_task_addr for most models (where it was already known - copied from ML stubs or from debugmsg.gdb)
Alex
QEMU logging: experimental task switch detection (DIGIC 2-6)
Alex
QEMU logging: attempt to fix a rare crash when returning from interrupt
Alex
QEMU logging: fix VxWorks return from interrupt; refactored interrupt detection on DIGIC 6
Alex
QEMU test suite: fix call/return trace logs being trimmed way before the first interrupt (the deterministic part is usually much larger than previously covered)
Alex
QEMU test suite: also report nested interrupts
Alex
QEMU: fix minor regression in DIGIC 6 bootloader (introduced in 7f1ba92; some tests changed)
Alex
QEMU logging: minor rename
Alex
QEMU test suite: workaround for the non-determinism in the sorted IDC test (retry up to 5 times until it succeeds)
Alex
QEMU test suite: more tests for call/return trace and IDC scripts (including Thumb, interrupts, secondary cores) Not all models are passing.
Alex
QEMU: fix cache lockdown printf's (they should go to stderr)
751 commits not shown.