Вы можете использовать команду U-Boot setexpr
, которая принимает пункт назначения, переменную 1, операцию и переменную 2.
U-Boot> setexpr count ${count} + 1
Однако в некоторых старых версиях U-Boot эта команда отсутствует. Если это так, вы можете перекомпилировать обновленный U-Boot.
Если вы не можете этого сделать и вы все еще в отчаянии, вы можете написать вложенные операторы «если», чтобы увеличить ваше число в виде строки. Если вам нужно сохранить это на потом, периодически сохраняйте их в энергонезависимой памяти (NAND или EEPROM). Если вы сделаете это, посчитайте в HEX, и вам придется сравнить свою строку с «f», «1f», «2f» и т. д. в зависимости от того, насколько высоко вам нужно считать.
Вот базовый код, который будет работать:
setenv ones "."
setenv tens "."
setenv hundreds "."
setenv thousands "."
setenv full ".++++++++++"
setenv doCountOnes 'if test ${ones} = ${full}; then setenv ones ".";setenv tens ${tens}+ ; else setenv ones ${ones}+; fi'
setenv doCountTens 'if test ${tens} = ${full}; then setenv tens ".";setenv hundreds ${hundreds}+ ; fi'
setenv doCountHundreds 'if test ${hundreds} = ${full}; then setenv hundreds ".";setenv thousands ${thousands}+ ; fi'
setenv printCount 'echo;echo **********************************************;echo ${thousands} Thousand ${hundreds} Hundred ${tens} Ten and ${ones};echo **********************************************'
setenv doCount 'run doCountOnes; run doCountTens; run doCountHundreds'
setenv mainLoop 'run yourTestHere; run doCount; run printCount'
Чтобы запустить этот тип скрипта:
run mainLoop
person
bschwagg
schedule
10.12.2014