在uBoot提示下增加一个值?

时间:2013-10-05 19:23:56

标签: linux bootloader u-boot

我希望找到一种从uBoots命令提示符增加RAM值的方法。

简而言之,我的设备上的地址0xc4000000是一个临时变量,需要递增

想法?

  • 我可以将值放入环境变量并将其包含在那里吗?
  • 我可以用它来增加它吗?

1 个答案:

答案 0 :(得分:8)

您可以使用U-Boot命令 setexpr
,它将目标,变量1,操作和变量2。

U-Boot> setexpr count ${count} + 1

但是在某些旧版本的U-Boot中,不包含此命令。 如果是这种情况,您可能需要重新编译更新的U-Boot。

如果你不能这样做并且你仍然是绝望的,你可以编写嵌套的“if”语句来将你的数字增加为一个字符串。如果您需要将其存储以供日后使用,请定期将其保存到非易失性存储(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