Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - blubbblubb

#1
Camera-specific Development / Re: Canon 6D
May 22, 2018, 07:22:28 PM
Quote from: dfort on May 03, 2018, 07:24:53 PM
...
Looking for testers to try out the "Nightly" build and see if it works the same as the 6D.116 from the official downloads page. Then run the selftest module and lua module API stubs tests and report back.

Note that this is an early test build so no ML-SETUP.FIR yet. You'll have to make sure ML is installed and running before doing the firmware update so the bootflags on both camera and card are set. I put a "6D Canon Firmware for Testers" package on my downloads page so you don't have to go searching for the Canon firmware updaters.

I finally had some time and tried the test version, i picked the "magiclantern-Nightly.2018May03.6D118" as it is sligthly newer than "test_build.2018May03.6D118.zip" (according to the timestamps inside the zip.)

I ran the following tests (i hope those are the correct ones):
- Selftests - Stubs API test
- Selftests - Quick test (around 15 min)
- LUA - Script API tests

i attached the logs for both API tests, the quick test did not generate a log file but completed fine. The selftest API test contains some [FAIL] while trying to allocate some memory

But i also encountered some weird stuff outside the tests:
- Entering Liveview in Photo mode crashes the camera, the liveview freezes and there is no reaction to any  of the buttons, after a short while the shoulder display just shows "Err" and there is no crash log on the SD card
  Taking Photos in Moviemode works
  The LUA API test is able to enter Liveview in Photomode, however after it finished i went into the magic lantern menu with the trash button and exited again back into liveview in photo mode and the camera crashed instantly

- Every time i start recording a movie i get the "Sound disabled" notification no matter if sound recording is set to manual oder automatic (i did not try an external mic)

Stub test

[Pass] is_play_mode() => 0x1
[Pass] src = fio_malloc(size) => 0x42000088
[Pass] dst = fio_malloc(size) => 0x42804094
[Pass] memcmp(dst, src, 4097) => 0x2
[Pass] edmac_memcpy(dst, src, 4097) => 0x42804094
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x42804094
[Pass] memcmp(dst, src, size) => 0xffffffde
[Pass] edmac_memcpy(dst, src, size) => 0x42804094
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0xffffff8f
[Pass] edmac_memcpy_start(dst, src, size) => 0x42804094
       dt => 0x17e2
[Pass] copied => 0x4014ec
[Pass] copied => 0x4014ec
[Pass] copied => 0x4014ec
[Pass] memcmp(dst, src, copied) => 0x0
[Pass] memcmp(dst, src, copied + 16) => 0xffffffc7
       edmac_memcpy_finish()
       free(src)
       free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0x1515c0
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x620
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0xec
[Pass] tries[1] => 0xfa
[Pass] tries[2] => 0x102
[Pass] tries[3] => 0x100
[Pass] failr[0] => 0x48
[Pass] failw[0] => 0x6e
[Pass] failr[1] => 0x51
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[Pass] failw[2] => 0x7c
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
       times[0] / tries[0] => 0x38
       times[1] / tries[1] => 0x37
       times[2] / tries[2] => 0x3d
       times[3] / tries[3] => 0x3d
Cache tests finished.

[Pass] f = FIO_CreateFile("test.dat") => 0x6
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
       FIO_CloseFile(f)
[Pass] FIO_GetFileSize("test.dat", &size) => 0x0
[Pass] size => 0x20000
[Pass] p = (void*)_alloc_dma_memory(0x20000) => 0x4089a804
[Pass] f = FIO_OpenFile("test.dat", O_RDONLY | O_SYNC) => 0x6
[Pass] FIO_ReadFile(f, p, 0x20000) => 0x20000
       FIO_CloseFile(f)
       _free_dma_memory(p)
[Pass] count => 0x3a98
[Pass] buf = fio_malloc(0x1000000) => 0x42000088
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000000
[Pass] f = FIO_OpenFile("test.dat", O_RDWR | O_SYNC) => 0x6
[Pass] FIO_SeekSkipFile(f, 0, SEEK_END) => 0x82000000
[Pass] FIO_WriteFile(f, buf, 0x10) => 0x10
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_END) => 0x81fffff0
[Pass] FIO_WriteFile(f, buf, 0x30) => 0x30
[Pass] FIO_SeekSkipFile(f, 0x20, SEEK_SET) => 0x20
[Pass] FIO_SeekSkipFile(f, 0x30, SEEK_CUR) => 0x50
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_CUR) => 0x30
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000020
[Pass] is_file("test.dat") => 0x1
[Pass] FIO_RemoveFile("test.dat") => 0x0
[Pass] is_file("test.dat") => 0x0
[Pass] SetTimerAfter(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x7abe
       msleep(900)
[Pass] timer_func => 0x0
       msleep(200)
[Pass] timer_func => 0x1
[Pass] ABS((timer_time/1000 - t0) - 1000) => 0x5
[Pass] ABS((timer_arg - ta0) - 1000) => 0xa
[Pass] timer = SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x7ac0
       msleep(400)
       CancelTimer(timer)
[Pass] timer_func => 0x0
       msleep(1500)
[Pass] timer_func => 0x0
[Pass] SetHPTimerAfterNow(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetHPTimerAfterNow(100000, timer_cbr, overrun_cbr, 0) => 0x2f79e
       msleep(90)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 100000) => 0xe4
[Pass] ABS(DeltaT(timer_arg, ta0) - 100000) => 0xc2
[Pass] ABS((get_us_clock_value() - t0) - 110000) => 0xcb
[Pass] SetHPTimerAfterNow(90000, next_tick_cbr, overrun_cbr, 0) => 0x2f7a0
       msleep(80)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x3
       msleep(80)
[Pass] timer_func => 0x3
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 300000) => 0x144
[Pass] ABS(DeltaT(timer_arg, ta0) - 300000) => 0x123
[Pass] ABS((get_us_clock_value() - t0) - 310000) => 0xb6
       t0 = *(uint32_t*)0xC0242014 => 0x1c067
       msleep(250)
       t1 = *(uint32_t*)0xC0242014 => 0x58622
[Pass] ABS(MOD(t1-t0, 1048576)/1000 - 250) => 0x3
       LoadCalendarFromRTC( &now )
       s0 = now.tm_sec => 0x39
       Date/time: 2018/05/22 18:34:57
       msleep(1500)
       LoadCalendarFromRTC( &now )
       s1 = now.tm_sec => 0x3a
[Pass] MOD(s1-s0, 60) => 0x1
[Pass] MOD(s1-s0, 60) => 0x1
       m0 = MALLOC_FREE_MEMORY => 0x10600
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[Pass] CACHEABLE(p) => 0x0
       m1 = MALLOC_FREE_MEMORY => 0x10600
       _free(p)
       m2 = MALLOC_FREE_MEMORY => 0x10600
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[Pass] ABS(m0-m2) => 0x0
       m0 = GetFreeMemForAllocateMemory() => 0x121c1c
[Pass] p = (void*)_AllocateMemory(256*1024) => 0x89a7c4
[Pass] CACHEABLE(p) => 0x89a7c4
       m1 = GetFreeMemForAllocateMemory() => 0xe1c10
       _FreeMemory(p)
       m2 = GetFreeMemForAllocateMemory() => 0x121c1c
[Pass] ABS((m0-m1) - 256*1024) => 0xc
[Pass] ABS(m0-m2) => 0x0
       m01 = MALLOC_FREE_MEMORY => 0x10600
       m02 = GetFreeMemForAllocateMemory() => 0x121c1c
[Pass] p = (void*)_alloc_dma_memory(256*1024) => 0x4089a804
[Pass] UNCACHEABLE(p) => 0x4089a804
[Pass] CACHEABLE(p) => 0x89a804
[Pass] UNCACHEABLE(CACHEABLE(p)) => 0x4089a804
       _free_dma_memory(p)
[Pass] p = (void*)_shoot_malloc(24*1024*1024) => 0x42000068
[Pass] UNCACHEABLE(p) => 0x42000068
       _shoot_free(p)
       m11 = MALLOC_FREE_MEMORY => 0x10600
       m12 = GetFreeMemForAllocateMemory() => 0x121c1c
[Pass] ABS(m01-m11) => 0x0
[Pass] ABS(m02-m12) => 0x0
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[FAIL] p = (void*)_malloc(50*1024) => 0x0
[FAIL] ABS((m0-m1) - 50*1024) => 0xc800
[Pass] suite = shoot_malloc_suite_contig(24*1024*1024) => 0x109478
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1800000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x109528
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1800000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42000064
[Pass] UNCACHEABLE(p) => 0x42000064
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite_contig(0) => 0x109478
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x2000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x109528
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x2000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42000064
[Pass] UNCACHEABLE(p) => 0x42000064
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(64*1024*1024) => 0x109478
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0xb
[Pass] suite->size => 0x4000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x109528
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x298000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5ce10094
[Pass] UNCACHEABLE(p) => 0x5ce10094
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10a140
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2298000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42000064
[Pass] UNCACHEABLE(p) => 0x42000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10a4f8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2534000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x44000070
[Pass] UNCACHEABLE(p) => 0x44000070
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10af80
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2694000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5c89c0e4
[Pass] UNCACHEABLE(p) => 0x5c89c0e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10b9f0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x27f4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5a49c0e4
[Pass] UNCACHEABLE(p) => 0x5a49c0e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10ed80
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2954000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5809c0e4
[Pass] UNCACHEABLE(p) => 0x5809c0e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10f3a0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2ab4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4ae9c0e4
[Pass] UNCACHEABLE(p) => 0x4ae9c0e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10fad0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2c14000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x48a9c0e4
[Pass] UNCACHEABLE(p) => 0x48a9c0e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10fd70
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2d74000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4669c0e4
[Pass] UNCACHEABLE(p) => 0x4669c0e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x1100d8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2ed4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4429c0e4
[Pass] UNCACHEABLE(p) => 0x4429c0e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x1103e8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x44400064
[Pass] UNCACHEABLE(p) => 0x44400064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4000000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(0) => 0x109478
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x15
[Pass] suite->size => 0xfb00000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0x109528
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x298000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5ce10094
[Pass] UNCACHEABLE(p) => 0x5ce10094
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10a140
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2298000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42000064
[Pass] UNCACHEABLE(p) => 0x42000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10a4f8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2534000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x44000070
[Pass] UNCACHEABLE(p) => 0x44000070
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10af80
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2694000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5c89c0e4
[Pass] UNCACHEABLE(p) => 0x5c89c0e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10b9f0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x27f4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5a49c0e4
[Pass] UNCACHEABLE(p) => 0x5a49c0e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10ed80
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2954000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5809c0e4
[Pass] UNCACHEABLE(p) => 0x5809c0e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10f3a0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2ab4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4ae9c0e4
[Pass] UNCACHEABLE(p) => 0x4ae9c0e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10fad0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2c14000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x48a9c0e4
[Pass] UNCACHEABLE(p) => 0x48a9c0e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x10fd70
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2d74000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4669c0e4
[Pass] UNCACHEABLE(p) => 0x4669c0e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x1100d8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2ed4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4429c0e4
[Pass] UNCACHEABLE(p) => 0x4429c0e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x1103e8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4ed4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x44400064
[Pass] UNCACHEABLE(p) => 0x44400064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x1111d8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x5170000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x46400070
[Pass] UNCACHEABLE(p) => 0x46400070
       chunk = GetNextMemoryChunk(suite, chunk) => 0x113070
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x7170000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x46800064
[Pass] UNCACHEABLE(p) => 0x46800064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x114878
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x740c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x48800070
[Pass] UNCACHEABLE(p) => 0x48800070
       chunk = GetNextMemoryChunk(suite, chunk) => 0x114c98
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x940c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x48c00064
[Pass] UNCACHEABLE(p) => 0x48c00064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x115388
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x96a8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4ac00070
[Pass] UNCACHEABLE(p) => 0x4ac00070
       chunk = GetNextMemoryChunk(suite, chunk) => 0x115708
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xb6a8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x55e00064
[Pass] UNCACHEABLE(p) => 0x55e00064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x115a50
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xb944000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x57e00070
[Pass] UNCACHEABLE(p) => 0x57e00070
       chunk = GetNextMemoryChunk(suite, chunk) => 0x1165c0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xd944000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x58200064
[Pass] UNCACHEABLE(p) => 0x58200064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x116800
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xdbe0000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5a200070
[Pass] UNCACHEABLE(p) => 0x5a200070
       chunk = GetNextMemoryChunk(suite, chunk) => 0x116c98
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0xfb00000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x5a600064
[Pass] UNCACHEABLE(p) => 0x5a600064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0xfb00000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] strlen("abc") => 0x3
[Pass] strlen("qwertyuiop") => 0xa
[Pass] strlen("") => 0x0
[Pass] strcpy(msg, "hi there") => 0x21872c
[Pass] msg => 'hi there'
[Pass] snprintf(a, sizeof(a), "foo") => 0x3
[Pass] snprintf(b, sizeof(b), "foo") => 0x3
[Pass] strcmp(a, b) => 0x0
[Pass] snprintf(a, sizeof(a), "bar") => 0x3
[Pass] snprintf(b, sizeof(b), "baz") => 0x3
[Pass] strcmp(a, b) => 0xfffffff8
[Pass] snprintf(a, sizeof(a), "Display") => 0x7
[Pass] snprintf(b, sizeof(b), "Defishing") => 0x9
[Pass] strcmp(a, b) => 0x4
[Pass] snprintf(buf, 3, "%d", 1234) => 0x2
[Pass] buf => '12'
[Pass] memcpy(foo, bar, 6) => 0x218700
[Pass] foo => 'asdfghuiop'
[Pass] memset(bar, '*', 5) => 0x2186e0
[Pass] bar => '*****hjkl;'
       bzero32(bar + 5, 5)
[Pass] bar => '****'
       EngDrvOut(LCD_Palette[0], 0x1234)
[Pass] shamem_read(LCD_Palette[0]) => 0x1234
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       call("TurnOffDisplay")
[Pass] DISPLAY_IS_ON => 0x0
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       task_create("test", 0x1c, 0x1000, test_task, 0) => 0xe0d000ee
[Pass] test_task_created => 0x1
[Pass] get_current_task_name() => 'run_test'
[Pass] task_max => 0x84
[Pass] task_max => 0x84
[Pass] mq = mq ? mq : (void*)msg_queue_create("test", 5) => 0xe0d200c0
[Pass] msg_queue_post(mq, 0x1234567) => 0x0
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x0
[Pass] m => 0x1234567
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x9
[Pass] sem = sem ? sem : create_named_semaphore("test", 1) => 0xe0d4020c
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] take_semaphore(sem, 500) => 0x9
[Pass] give_semaphore(sem) => 0x0
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] give_semaphore(sem) => 0x0
[Pass] rlock = rlock ? rlock : CreateRecursiveLock(0) => 0xe0d60096
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0xf
       SetGUIRequestMode(1); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x1
       SetGUIRequestMode(2); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x2
       SetGUIRequestMode(0); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x0
[Pass] display_idle() => 0x1
       GUI_Control(BGMT_PLAY, 0, 0, 0); msleep(1000);
[Pass] PLAY_MODE => 0x1
[Pass] MENU_MODE => 0x0
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(1000);
[Pass] MENU_MODE => 0x1
[Pass] PLAY_MODE => 0x0
[Pass] dialog->type => 'DIALOG'
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(500);
[Pass] MENU_MODE => 0x0
[Pass] PLAY_MODE => 0x0
       SW1(1,100)
[Pass] HALFSHUTTER_PRESSED => 0x1
       SW1(0,100)
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x1
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x1
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0


LUA Test


===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-5-22 19:10:19
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
camera = table:
  shutter = table:
    raw = 123
    apex = 8.374999
    ms = 3
    value = 0.003012
  aperture = table:
    raw = 40
    apex = 4
    value = 4
    min = table:
      raw = 40
      apex = 4
      value = 4
    max = table:
      raw = 80
      apex = 9
      value = 22.6
  iso = table:
    raw = 88
    apex = 7.
    value = 400
  ec = table:
    raw = 0
    value = 0
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 6500
  mode = 20
  metering_mode = 5
  drive_mode = 0
  model = "Canon EOS 6D"
  model_short = "6D"
  firmware = "1.1.8"
  temperature = 178
  state = 0
  reboot = function: p
  bulb = function: p
  shoot = function: p
event = table:
  pre_shoot = nil
  post_shoot = nil
  shoot_task = nil
  seconds_clock = nil
  keypress = nil
  custom_picture_taking = nil
  intervalometer = nil
  config_save = nil
console = table:
  write = function: p
  show = function: p
  hide = function: p
  clear = function: p
lv = table:
  enabled = true
  paused = false
  running = true
  zoom = 1
  resume = function: p
  pause = function: p
  stop = function: p
  info = function: p
  wait = function: p
  start = function: p
lens = table:
  name = "EF24-70mm f/4L IS USM"
  focal_length = 24
  focus_distance = 655350
  hyperfocal = 5013
  dof_near = 4975
  dof_far = 1000000
  af = true
  af_mode = 0
  focus = function: p
display = table:
  idle = true
  height = 480
  width = 720
  circle = function: p
  on = function: p
  pixel = function: p
  print = function: p
  draw = function: p
  off = function: p
  notify_box = function: p
  load = function: p
  screenshot = function: p
  clear = function: p
  rect = function: p
  line = function: p
key = table:
  last = 0
  wait = function: p
  press = function: p
menu = table:
  visible = false
  get = function: p
  open = function: p
  new = function: p
  set = function: p
  block = function: p
  close = function: p
testmenu = userdata:
  value = 0
  name = "Script API tests"
  help = "Various tests for the Lua scripting API."
  help2 = "When adding new Lua APIs, tests for them should go here."
  advanced = 0
  depends_on = 0
  edit_mode = 0
  hidden = false
  icon_type = 5
  jhidden = false
  max = 0
  min = 0
  selected = true
  shidden = false
  starred = false
  submenu_height = 0
  submenu_width = 0
  unit = 0
  works_best_in = 0
  run_in_separate_task = 0
  select = function: p
  update = nil
  info = nil
  rinfo = nil
  warning = nil
movie = table:
  recording = false
  stop = function: p
  start = function: p
dryos = table:
  clock = 1771
  ms_clock = 1771032
  prefix = "IMG_"
  dcim_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "B:/DCIM/"
    path = "B:/DCIM/100CANON/"
  config_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "ML/"
    path = "ML/SETTINGS/"
  ml_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 9918
    folder_number = 100
    free_space = 14187776
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  shooting_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 9918
    folder_number = 100
    free_space = 14187776
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  date = table:
    day = 22
    month = 5
    year = 2018
    sec = 21
    yday = 142
    isdst = false
    hour = 19
    wday = 3
    min = 10
  remove = function: p
  call = function: p
  directory = function: p
interval = table:
  time = 10
  count = 0
  running = 0
  stop = function: p
battery = table:
  level = 45
  id = 0
  performance = 3
  time = 9405
  drain_rate = 17
task = table:
  yield = function: p
  create = function: p
property = table:
Generic tests completed.

Module tests...
Copy test: autoexec.bin -> tmp.bin
Copy test OK
Append test: tmp.txt
Append test OK
Testing exposure settings, module 'camera'...
Camera    : Canon EOS 6D (6D) 1.1.8
Lens      : EF24-70mm f/4L IS USM
Shoot mode: 20
Shutter   : ,320 (raw 123, 0.003012s, 3ms, apex 8.374999)
Aperture  : 4.0 (raw 40, f/4, apex 4)
Av range  : 4.0..22 (raw 40..80, f/4..f/22.6, apex 4..9)
ISO       : 400 (raw 88, 400, apex 7.)
EC        : 0.0 (raw 0, 0 EV)
Flash EC  : 0.0 (raw 0, 0 EV)
Please switch to M mode.
Setting shutter to random values...
Setting ISO to random values...
Setting aperture to random values...
Please switch to Av mode.
Setting EC to random values...
Setting Flash EC to random values...
Exposure tests completed.

Testing module 'lv'...
Starting LiveView...
Setting zoom to x1...
Setting zoom to x5...
Setting zoom to x10...
Setting zoom to x5...
Setting zoom to x1...
Setting zoom to x10...
Setting zoom to x1...
Pausing LiveView...
Resuming LiveView...
Stopping LiveView...
LiveView tests completed.

Focus distance: 655350
Focusing backward...
Focus distance: 655350
Focusing forward with step size 3, wait=true...
...
Focus distance: 510
Focusing backward with step size 3, wait=true...
.
Focus distance: 780
Focus range: 3 steps forward, 1 steps backward.
Focusing forward with step size 3, wait=false...
...
Focus distance: 830
Focusing backward with step size 3, wait=false...
.
Focus distance: 830
Focus range: 3 steps forward, 1 steps backward.
Focusing forward with step size 2, wait=true...
.......................
Focus distance: 380
Focusing backward with step size 2, wait=true...
.....................
Focus distance: 655350
Focus range: 23 steps forward, 21 steps backward.
Focusing forward with step size 2, wait=false...
.......................
Focus distance: 470
Focusing backward with step size 2, wait=false...
.....................
Focus distance: 655350
Focus range: 23 steps forward, 21 steps backward.
Focusing forward with step size 1, wait=true...
............................................................................................
Focus distance: 370
Focusing backward with step size 1, wait=true...
..........................................................................................
Focus distance: 655350
Focus range: 92 steps forward, 90 steps backward.
Focusing forward with step size 1, wait=false...
............................................................................................
Focus distance: 390
Focusing backward with step size 1, wait=false...
..........................................................................................
Focus distance: 655350
Focus range: 92 steps forward, 90 steps backward.
Focus test completed.

Done!

#2
Camera-specific Development / Re: Canon 6D
May 06, 2018, 07:28:06 PM
i tried the 10/12 Bit branch and posted in the other topic.

Regarding the 1.18 Update, i assume it is considered "safe" to try it now? I'll try to test it in the next week or so, not sure if i have a chance before
#3
I tried the 10/12 Bit one and i cant reproduce the WBAL error (altough i had to use a lower resolution to record more than just 1-2 seconds), so maybe not a error affecting all 6D's?
#4
Camera-specific Development / Re: Canon 6D
April 16, 2018, 06:36:58 PM
Ok, so i tried the portable dumper on 2 256MB cards, where either nothing happens or the process freezes, i then tried a 1GB card which seems to complete the dump but the checksums for the ROM1*.bin do not match. (But i can still read the card from linux)

I then moved to the blind dumper, which if i understand correctly is used by entering the Play mode.
This creates a 16,8MB file called "(NULL)" which also has different checksums for each dump.

Im not sure if im doing something wrong or if the dumpers do not work with this firmware/camera

I tried formatting the cards throug linux and the camera and made them bootable via the "make_bootable.sh" script.

Edit: just sent you the dumps, i hope at least one of them works
#5
Camera-specific Development / Re: Canon 6D
April 16, 2018, 04:05:24 PM
are there any tricks to using the portable rom dumper?

I tried it multiple times with 2 different freshly formatted SD cards and only the checksum for ROM0B.BIN stays the same

Also im not able to copy the files using Linux from the SD Card, it always shows:
Error when getting information for file "/run/media/EOS_DEVELOP/¬¬uu¬¬uu.QUU": Input/output error.

Windows seems to read them fine, but shows wrong information about the available space on the SD Card
#6
Camera-specific Development / Re: Canon 6D
March 22, 2018, 07:04:12 PM
Did reinstalling fix your issue?

All overlays work fine for me with the latest nightly.
#7
Camera-specific Development / Re: Canon 6D
March 15, 2018, 03:00:38 AM
So i had some time to look into the headphone stuff again and it was just the missing stub. After seeing that the stub address for SoundDevActiveIn and sounddev_active_in can be the same, as done for the 650D i just did the same.

I opened a pull request: https://bitbucket.org/hudson/magic-lantern/pull-requests/911/enabled-headphone-monitoring-for-the-6d/

Which is probably not up to the magiclantern standard at the moment (Im guessing the problems with toggling the option before attaching the cable and taking pictures would need to be adressed first)

Due to my limited knowledge of magic lantern/c/assembler right now im not able to further improve this (I'll have to look into some more documentation and try to learn more about it)
Any ideas/hints as well as other contributors/tester would be appreciated.
#8
Camera-specific Development / Re: Canon 6D
February 21, 2018, 04:14:49 AM
The function was declared inside another function (which to me looked a bit weird to begin with), moving it seemed to help.

Now there is an undefined reference to sounddev_active_in which by the looks of it is a canon function with a missing stub for the 6D.

I'm guessing i'll have to refresh my C and Assembler knowledge a bit and have a deeper look into it.

As for getting it into mainline, the way it was done in the previously mentioned post seems kinda hacky and there are some limitations/problems mentioned so i guess it would be necessary to adress those first.
#9
Camera-specific Development / Re: Canon 6D
February 20, 2018, 11:02:37 PM
I recently switched to the Canon 6D (coming from a 600D) and the only thing i miss is the ability to monitor the Audio Levels with a pair of headphones. I tried to copy the steps mentioned in this post:
Quote from: jjtempey85 on August 12, 2016, 01:08:32 PM
*EDIT* - I forgot the registers I had to port over from Tragic Lantern in audio.h.  All better now.

I got tired of not having headphone monitoring on my 6D, so I hacked it in over the course a few evenings.  ...

but I was not able to simply copy those changes (probably because the code of Magic Lantern has changed a lot since then). Im guessing some functions were removed or renamed

I stopped trying at this error message:
../../src/audio.h:160:9: error: implicit declaration of function '_audio_ic_write_bulk';

I might look into it again in the next few days and try to get it to work, however my main question is: Where there any problems with those changes? Or was there another reason that this never made it into the official version?
#10
Headphone monitoring works without a problem