Create your own PAWN native functions!

You need more performance for your rapidM2M scripts? (e.g. CMSIS DSP Software Library)
Do you miss important functions in PAWN? (e.g. JSON parsing)
Do you want to protect your algorithm, but give the customer the flexibility of PAWN?

Simply use the new script loadable modules and create your own PAWN native functions (written in C and compiled for ARM Cortex-M)!

Easily integrate your own modules into your existing script:

#include "modTest.inc" 
main() 
{ 
loadmodule(modTest); 
... 
modFunction(); 
}

Runtime Environment

The module code will run in a memory protected, unprivileged environment with full access to abstract machines data memory but read only access to the abstract machine itself (AMX *amx). Where needed, the environment provides supervisor calls (e.g. amx_RaiseError()).

loadmodule

Example modTemplate

To avoid any problems, change only the files in “src” subdirectory!

  • sysdefs.h
    Contains configuration definitions

    • MODULE_NAME has to be a valid ANSI C variable name.
    • MODULE_STACK_SIZE depends on build configuration
  •  module.c
    Contains module native function implementations.
    Positions where to insert your code are marked with “TODO:”.
  • module.inc
    Contains the Pawn native function prototypes of the module.

When the build succeeded, a file ${ProjName}.inc is created in “pawn” subdirectory.

Example download including installation instructions

Leave a Reply

Your email address will not be published. Required fields are marked *