我们如何从U启动独立的裸板二进制文件(而不是使用U环境而不是linux内核运行的独立二进制文件)。我的要求是用我的二进制文件重新初始化电路板和驱动程序.
我可以用二进制文件替换引导介质中的using (这里或Flash),但我的要求是不从NOR闪存中删除U引导,我应该使用"tftp“命令从LAN网络加载二进制文件。
谢谢和问候,维伦德拉纳特
发布于 2016-02-13 21:28:32
如何从U启动裸板二进制文件?
使用U的go命令来执行任何类型的独立程序。
我们如何从U启动独立的裸板二进制文件(而不是使用U环境而不是linux内核运行的独立二进制文件)。
使用U的go命令来执行任何类型的独立程序。
..。我应该使用"tftp“命令从局域网加载二进制文件。
使用U的tftpboot和go命令来执行任何类型的独立程序.(既然还有一个tftp命令,那么就不推荐使用缩写的tftpput命令。)
这里的问题是当我使用go命令时,我的程序必须使用use服务函数(我的意思是,独立的二进制文件将在use环境中运行).
你被误导了,没有要求你必须“使用use服务功能”。
构建独立于U的独立程序,它将完全独立于U执行.
但是我不能使用引导或U-Boot提供的任何其他引导命令来引导,因为我的二进制文件不是内核格式的。
没有“内核格式”;这就是为什么uses使用mkimage包装器来识别二进制文件的原因。
bootm命令是专门为OSes的引导需求而设计的,例如Linux内核(例如,一个包含命令行参数的缓冲区),方法是指定二进制文件的特性。
使用U的go命令来执行任何简单的独立程序.
如果在使用go命令时执行二进制文件有问题,那么问题在于程序,例如控制处理器并初始化其C环境。
增编
当我使用独立程序一词时,我指的是泛型定义 (又称裸金属),而不是与其示例/目录相关的U的定义。
我在这两种“独立”程序中都使用了go命令。
U将它的“独立”描述为
* "Standalone Programs" are directly runnable in the environment
* provided by U-Boot; it is expected that (if they behave
* well) you can continue to work in U-Boot after return from
* the Standalone Program.请注意,U环境的使用是可选的。
一个独立的程序不需要使用use环境,特别是如果没有返回use的意图。
U中没有任何东西可以检测或限制独立程序的行为。
如果无法让独立程序使用go命令,那么问题在于程序,而不是go命令。
go命令仅仅转移控制(即将分支指令转移到指定的内存位置),并且对该代码没有任何限制或要求(除了对系统的操作是合理的)。
使用电路内模拟器(ICE)或JTAG调试器解决代码问题,特别是当程序不使用现有堆栈时。
增编2
与含糊的go命令不同,mkimage包装器提供了与bootm命令一起使用的standalone映像类型。
请参阅创建裸露的金属引导映像,但不要期望得到与go命令不同的结果。
与bootm相比,使用包装器和go的优点是下载的映像( uImage文件)可以:
iminfo命令识别/验证,发布于 2020-02-14 01:54:33
https://stackoverflow.com/questions/35362242
复制相似问题