увеличить значение в приглашении uBoot?

Я надеюсь найти способ увеличить значение в ОЗУ из командной строки uBoots.

Короче говоря, адрес 0xc4000000 на моем устройстве — это временная переменная, которую мне нужно увеличить.

мысли?

  • могу ли я поместить значение в переменную среды и включить его туда?
  • есть ли трюк, который я могу использовать, чтобы увеличить его?

person stuck    schedule 05.10.2013    source источник
comment
Вы понимаете, что такое виртуальная память? Вы загрузили ядро? И аппаратные сбросы нелегко подсчитать (если только у вас нет очень специфического аппаратного устройства).   -  person Basile Starynkevitch    schedule 05.10.2013
comment
Я проясню вопрос - приложение не имеет значения. вопрос в том, как увеличить адрес памяти с помощью команд командной строки uBoot (я бы предпочел не добавлять команду uBoot только для этого)   -  person stuck    schedule 05.10.2013


Ответы (1)


Вы можете использовать команду 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