Я хочу передать массив c запущенному скрипту lua. Массив c - это uin32_t с 16-битными значениями. Так старшее и младшее слово с 1024 значениями uint32_t. Итак, 2048 16-битных значений.
Когда я набираю значение 512 uint32_t, код lua выдает ошибку LUA_ERRMEM, потому что свободной памяти больше нет. Это абсолютно возможно, так как мое приложение работает на STM32F2XX µC.
Я вызываю lua_checkstack каждую итерацию с 20 дополнительными слотами стека для выделения. Так что в теории стек всегда должен быть достаточно большим. Но нет, если он не может перераспределить больше памяти.
Так что моя идея заключалась в том, чтобы поместить его во внешнюю память, но я не знаю как. У меня уже есть рабочая секция компоновщика для внешнего PSRAM, но я не могу просто где-нибудь сделать атрибут ((section (".psram"))), верно?
Так что мне нужнонаписать свою собственную функцию lua_newstate? Или есть другой способ разместить стек lua там, где я хочу?