mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-02-26 17:53:59 -04:00
AP_Scripting: add define option to disable interupts for the duration of script run
This commit is contained in:
parent
da352163ee
commit
427e8d1e24
@ -19,6 +19,8 @@
|
|||||||
|
|
||||||
#include <AP_Scripting/lua_generated_bindings.h>
|
#include <AP_Scripting/lua_generated_bindings.h>
|
||||||
|
|
||||||
|
#define DISABLE_INTERRUPTS_FOR_SCRIPT_RUN 0
|
||||||
|
|
||||||
extern const AP_HAL::HAL& hal;
|
extern const AP_HAL::HAL& hal;
|
||||||
|
|
||||||
bool lua_scripts::overtime;
|
bool lua_scripts::overtime;
|
||||||
@ -471,6 +473,10 @@ void lua_scripts::run(void) {
|
|||||||
// copy name for logging, cant do it after as script reschedule moves the pointers
|
// copy name for logging, cant do it after as script reschedule moves the pointers
|
||||||
const char * script_name = scripts->name;
|
const char * script_name = scripts->name;
|
||||||
|
|
||||||
|
#if DISABLE_INTERRUPTS_FOR_SCRIPT_RUN
|
||||||
|
void *istate = hal.scheduler->disable_interrupts_save();
|
||||||
|
#endif
|
||||||
|
|
||||||
const int startMem = lua_gc(L, LUA_GCCOUNT, 0) * 1024 + lua_gc(L, LUA_GCCOUNTB, 0);
|
const int startMem = lua_gc(L, LUA_GCCOUNT, 0) * 1024 + lua_gc(L, LUA_GCCOUNTB, 0);
|
||||||
const uint32_t loadEnd = AP_HAL::micros();
|
const uint32_t loadEnd = AP_HAL::micros();
|
||||||
|
|
||||||
@ -478,6 +484,11 @@ void lua_scripts::run(void) {
|
|||||||
|
|
||||||
const uint32_t runEnd = AP_HAL::micros();
|
const uint32_t runEnd = AP_HAL::micros();
|
||||||
const int endMem = lua_gc(L, LUA_GCCOUNT, 0) * 1024 + lua_gc(L, LUA_GCCOUNTB, 0);
|
const int endMem = lua_gc(L, LUA_GCCOUNT, 0) * 1024 + lua_gc(L, LUA_GCCOUNTB, 0);
|
||||||
|
|
||||||
|
#if DISABLE_INTERRUPTS_FOR_SCRIPT_RUN
|
||||||
|
hal.scheduler->restore_interrupts(istate);
|
||||||
|
#endif
|
||||||
|
|
||||||
if ((_debug_options.get() & uint8_t(DebugLevel::RUNTIME_MSG)) != 0) {
|
if ((_debug_options.get() & uint8_t(DebugLevel::RUNTIME_MSG)) != 0) {
|
||||||
gcs().send_text(MAV_SEVERITY_DEBUG, "Lua: Time: %u Mem: %d + %d",
|
gcs().send_text(MAV_SEVERITY_DEBUG, "Lua: Time: %u Mem: %d + %d",
|
||||||
(unsigned int)(runEnd - loadEnd),
|
(unsigned int)(runEnd - loadEnd),
|
||||||
|
Loading…
Reference in New Issue
Block a user