diff options
Diffstat (limited to 'nuttx/configs/ea3131/locked')
-rwxr-xr-x | nuttx/configs/ea3131/locked/mklocked.sh | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/nuttx/configs/ea3131/locked/mklocked.sh b/nuttx/configs/ea3131/locked/mklocked.sh index 0bd8f0896..3696888b0 100755 --- a/nuttx/configs/ea3131/locked/mklocked.sh +++ b/nuttx/configs/ea3131/locked/mklocked.sh @@ -65,6 +65,9 @@ fi function checkconfig () { CONFIGLINE=`cat "$CONFIG" | grep "$1="` + if [ -z "$CONFIGLINE" ]; then + echo "n" + fi if [ "X${CONFIGLINE}" = "X${1}=y" ]; then echo "y" else @@ -72,6 +75,17 @@ function checkconfig () { fi } +function checkzero () { + CONFIGLINE=`cat "$CONFIG" | grep "$1="` + if [ -z "$CONFIGLINE" ]; then + echo "y" + fi + if [ "X${CONFIGLINE}" = "X${1}=0" ]; then + echo "y" + else + echo "n" + fi +} ############################################################################ # Interrupt Handlers ############################################################################ @@ -124,9 +138,75 @@ fi # initialization code. That optimization has not yet been made and, as # consequence, the 1-time initialization code takes up precious memory # in the locked memory region. +# +# up_boot is a low-level initialization function called by __start: echo "EXTERN(up_boot)" >>ld-locked.inc +# All of the initialization functions that are called by os_start up to +# the point where the page fill worker thread is started must also be +# included in the locked text section (at least for now) + +answer=$(checkzero CONFIG_TASK_NAME_SIZE) +if [ $answer = n ]; then + echo "EXTERN(up_boot)" >>ld-locked.inc +fi + +echo "EXTERN(dq_addfirst)" >>ld-locked.inc +echo "EXTERN(up_initial_state)" >>ld-locked.inc + +answer=$(checkconfig CONFIG_HEAP_BASE) +if [ $answer = n ]; then + echo "EXTERN(up_allocate_heap)" >>ld-locked.inc +fi + +echo "EXTERN(mm_initialize)" >>ld-locked.inc +echo "EXTERN(irq_initialize)" >>ld-locked.inc +#echo "EXTERN(user_initialize)" >>ld-locked.inc +echo "EXTERN(wd_initialize)" >>ld-locked.inc + +answer=$(checkconfig CONFIG_DISABLE_CLOCK) +if [ $answer = n ]; then + echo "EXTERN(clock_initialize)" >>ld-locked.inc +fi + +answer=$(checkconfig CONFIG_DISABLE_POSIX_TIMERS) +if [ $answer = n ]; then + echo "EXTERN(timer_initialize)" >>ld-locked.inc +fi + +answer=$(checkconfig CONFIG_DISABLE_SIGNALS) +if [ $answer = n ]; then + echo "EXTERN(sig_initialize)" >>ld-locked.inc +fi + +echo "EXTERN(sem_initialize)" >>ld-locked.inc + +answer=$(checkconfig CONFIG_DISABLE_MQUEUE) +if [ $answer = n ]; then + echo "EXTERN(mq_initialize)" >>ld-locked.inc +fi + +answer=$(checkconfig CONFIG_DISABLE_PTHREAD) +if [ $answer = n ]; then + echo "EXTERN(pthread_initialize)" >>ld-locked.inc +fi + +answer=$(checkzero CONFIG_NFILE_DESCRIPTORS) +if [ $answer = n ]; then + echo "EXTERN(fs_initialize)" >>ld-locked.inc +fi + +answer=$(checkconfig CONFIG_NET) +if [ $answer = y ]; then + echo "EXTERN(net_initialize)" >>ld-locked.inc +fi + +echo "EXTERN(up_initialize)" >>ld-locked.inc +echo "EXTERN(lib_initialize)" >>ld-locked.inc +echo "EXTERN(sched_setupidlefiles)" >>ld-locked.inc +echo "EXTERN(task_create)" >>ld-locked.inc + ############################################################################ # Idle Loop ############################################################################ |