Jeroen Domburg
ded1cd3d45
esp_partition_mmap could map a page less than needed because it did not take the region offset into account.
2017-07-03 18:00:25 +08:00
Angus Gratton
9faf9c9416
newlib locks: Fix _lock_init() & _lock_init_recursive() failing to initialise a lock
...
If scheduler was running, and lock was an auto variable initialised at runtime by _lock_init*, initialisation could fail
if the lock variable held non-zero stack memory (and lock would be left invalid).
In other cases the lock is statically initialised to zero by __LOCK_INIT*
2017-06-29 19:46:19 +08:00
Angus Gratton
6fa47125b5
freertos: Fix crash when waking task on CPU1 with scheduler disabled
...
xPendingReadyList[1] was never initialised correctly, so if a task is added to this list (ie by xSemaphoreGiveFromISR()
or similar) while scheduler is disabled, then it causes a null pointer dereference.
Bug produces stack traces similar to:
0x40086e87: vListInsertEnd at /home/gus/esp/32/idf/components/freertos/./list.c:130
0x40084ba3: xTaskRemoveFromEventList at /home/gus/esp/32/idf/components/freertos/./tasks.c:3439
0x40083c54: xQueueGiveFromISR at /home/gus/esp/32/idf/components/freertos/./queue.c:2034
0x400f50a0: timer_group0_isr at /home/gus/esp/32/idf/components/freertos/test/./test_suspend_scheduler.c:27
0x40081d7d: _xt_lowint1 at xtensa_vectors.o:?
2017-06-28 15:00:04 +08:00
Jeroen Domburg
33a9a37dd4
Make sure mmap always allocates an internal bit of memory for mmap housekeeping
2017-06-28 13:55:58 +08:00
Wangjialin
2fbc62f986
feature(psram): add 80Mhz mode for psram. Since we have flash rom code patch now, we can fix the compatibility issue between SPI APIs and psram.
...
1. add qio enable option in bootloader for GD25LQ32C flash.
2. add option for psram mode: 40m+40m, 80m+40m, 80m+80m.
3. fix bugs in spi_flash_rom_patch
2017-06-24 13:28:51 +08:00
Jeroen Domburg
5e63563b98
Fix intlvl4 panic handler, dport interrupt
2017-05-26 18:53:10 +08:00
Jeroen Domburg
5a125b5cb4
Also add added BT rom functions to psram workaround ld file
2017-05-24 15:31:43 +08:00
Jeroen Domburg
221376ffdb
Typo fix
2017-05-18 16:50:47 +08:00
Jeroen Domburg
b52788e764
Add reserved DMA/internal region
2017-05-18 16:48:52 +08:00
Jeroen Domburg
74a535ff70
Release coprocessor registers when a task is deleted.
2017-05-18 15:40:54 +08:00
Jeroen Domburg
4a6e444300
Fix ld file for psram workaround
2017-05-17 12:01:59 +08:00
Jeroen Domburg
5c13d7385c
Remove superfluous task_is_internal check, port dport interrupt to separate int handler
2017-05-16 15:36:18 +08:00
Jeroen Domburg
5c50419aef
Kill dummy lock from newlib so the real lock functions get used
2017-05-16 14:12:08 +08:00
Jeroen Domburg
f2b6e6941f
New psram fix for newlib: also add workaround to memset/memcpy/strlen/...
2017-05-16 14:12:08 +08:00
Jeroen Domburg
f38386023a
I should not compile the workaround newlib stuff with a compiler which only knows about a partial workaround...
2017-05-16 14:12:07 +08:00
Jeroen Domburg
0faa881470
Add fundamental newlib routines (memcpy etc) to IRAM
2017-05-16 14:12:07 +08:00
Jeroen Domburg
68ef6723bb
Fix lib picking, revert non-workaround libs to whatever is in master to hopefully make later merging easier.
2017-05-16 14:12:07 +08:00
Jeroen Domburg
3b07fcebb6
Fix rebase artifacts
2017-05-16 14:12:06 +08:00
Jeroen Domburg
363e595c60
Do not forget to add files
2017-05-16 14:12:06 +08:00
Jeroen Domburg
4918907257
Add psram workaround newlib versions, add some documentation
2017-05-16 14:12:04 +08:00
Jeroen Domburg
afd10b982b
Recompiled newlib to make memmove use the workaround
2017-05-16 14:11:01 +08:00
Jeroen Domburg
754f574aab
Rebasing to latest master
2017-05-16 14:10:59 +08:00
Jeroen Domburg
cb0dd77975
Always allocate stack in internal memory
2017-05-16 13:14:32 +08:00
Jeroen Domburg
c46d7e60b0
Also add cache mode choice to menuconfig
2017-05-16 13:14:32 +08:00
Jeroen Domburg
4fd173c8c3
Add option for memory barriers everywhere
2017-05-16 13:14:32 +08:00
Jeroen Domburg
58e8763874
Move debug exception vector to vector_defaults.S
2017-05-16 13:14:32 +08:00
Jeroen Domburg
202a5db2d2
Rework high interrupt code to be able to link to external handlers; add psram test that swarms cpu with interrupts
2017-05-16 13:14:30 +08:00
Jeroen Domburg
b63921a99c
Add option to enable compiler psram workaround. Needs custom crosstool.
2017-05-16 13:13:01 +08:00
Jeroen Domburg
d970307120
Change default mode to low/high for dualcore
2017-05-16 13:13:01 +08:00
Jeroen Domburg
bbb1820501
Do not mark SPI ram as DMA-capable
2017-05-16 13:13:01 +08:00
Jeroen Domburg
dff9385fc4
Kill debug messages in heap allocator, delete unused var.
2017-05-16 13:13:01 +08:00
Jeroen Domburg
c09ba35d3b
Fix int level 4 panics to give a correct backtrace. Add cache invalid access interrupt to panic handler reasons and wire it up to panic(). Fix issue where cache was re-enabled for pro cpu and pro cpu continuing execution while cache was still disabled on app cpu.
2017-05-16 13:13:01 +08:00
Jeroen Domburg
c9a7d21068
Fix intlvl 4 stuff to give a correct backtrace; add cache invalid access to intlvl4
2017-05-16 13:13:01 +08:00
Jeroen Domburg
e954277d7b
Fix up tests for stack not in psram on flash, add small testcase
2017-05-16 13:12:59 +08:00
Jeroen Domburg
6e992cc6cc
Get rid of superfluous printf
2017-05-16 13:11:59 +08:00
Jeroen Domburg
671787a966
After rebasing, it was found out that flushing the cache drops the writeback-pending psram cache lines on the ground. We now evict these by reading 64/128K of memory before flushing the cache. Also fixes a snafu in psram cache mode (inverted hi/lo and even/odd selectors) as well as an option to not let the heap allocator touch the psram.
2017-05-16 13:11:59 +08:00
Jeroen Domburg
96be5f3700
Get rid of _all_ uint16_t things that refer to stack size. Plus small fix to panic, not break, when coproc enable error.
2017-05-16 13:11:59 +08:00
Jeroen Domburg
0be8f6d308
Also use 32-bit stack lengths in prvTaskCheckFreeStackSpace and friends
2017-05-16 13:11:59 +08:00
Jeroen Domburg
db8c93afb1
FreeRTOS: Make stack size in task create functions an uint32_t, so we can allocate more than 32K of stack if needed.
2017-05-16 13:11:59 +08:00
Wangjialin
8af42554ba
remove unused codes in psram driver
2017-05-16 13:11:58 +08:00
Wangjialin
34d9cf4f00
update psram driver:
...
1. fix init error after system restart
2. use MACROs for GPIO definition and psram id.
3. format the code
2017-05-16 13:11:58 +08:00
Jeroen Domburg
39d9882be9
More MR comment fixes
2017-05-16 13:11:58 +08:00
Jeroen Domburg
da1ef5da03
Maybe I should try to compile before commit/push...
2017-05-16 13:11:58 +08:00
Jeroen Domburg
84b728e7fd
Some fixes to MR comments
2017-05-16 13:11:58 +08:00
Jeroen Domburg
b3a526536c
Fix warnings for test
2017-05-16 13:11:58 +08:00
Jeroen Domburg
fe3082fa98
Do not declare test_spiram when option is disabled
2017-05-16 13:11:58 +08:00
Jeroen Domburg
0049b918b4
Fix psram silicon bug test; clean up Kconfig mess, clean out psram unused functions warnings
2017-05-16 13:11:56 +08:00
Jeroen Domburg
c6d01c2bd2
Fix dualcore PSRAM.
2017-05-16 13:11:30 +08:00
Jeroen Domburg
c9a2463f3b
Add Doom psram test, fix free_heap_size/minimum_ever_heap_size calls to also understand combinations of caps, add psram support to allocator. At the moment, psram only works for the first core because of some funny business in the MMU of the 2nd core.
2017-05-16 13:10:52 +08:00
Jeroen Domburg
10402186bc
Add internal memory capability to heap alloc, add some PSRAM tests
2017-05-16 13:09:50 +08:00