From mboxrd@z Thu Jan 1 00:00:00 1970 From: kow9loon Date: Sun, 1 Apr 2007 10:11:42 -0700 (PDT) Subject: [U-Boot-Users] stand alone application In-Reply-To: <9771147.post@talk.nabble.com> References: <9771147.post@talk.nabble.com> Message-ID: <9779774.post@talk.nabble.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de After giving the matter some more thoughts, another question also comes into mind: How could I ensure that control is passed to the entry point of my standalone application, which I designate, running in the PowerPC environment, if the start address is confined to 0x00040000? I would expect that, some how, the standalone application has to inform U_boot where the start address is, before U_boot could get to the correct entry point. Please correct me if I am wrong. Thank you again. Regards, Kow9loon kow9loon wrote: > > I am trying to write a stand alone application, which is supposed to be a > board diagnostics for manufacturing. The way it supposes to work is as > follows: U_boot could either download the diagnostics manually under the > U_boot prompt, or be calling up do_tftp() directly if it is to be done > automatically. Results generated from the diagnostics are to be recorded > in the RAM, whose contents shall later be uploaded as a log file to an > external server via tftp. After reading the examples provided in the > example directory, I have the following questions: > > (1) In my understanding, the stand alone application (the board diagnostic > for manufacturing) is supposed to be compiled as a separately entity in > the U-boot path and then be placed in an external server, waiting to be > downloaded to the RAM on board; when either go
or do_go(address) > is executed, control get passed to the stand alone application, how could > the stand alone application be able to make calls to functions that are > exported (those appeared in both exports.c and export.h), without some > kind of "linking"? Unless go
or do_go(address) perform some sort > of "linking" or "peudo linking" action, this doesn't sound possible. Could > someone explain to me how this works? > > My expectation of how this could work is: on execution of the go
> command or do_go (address), address of the jump table is to be loaded into > a register, and it is the responsibility of the application to save the > value of this register before anything else, in such a way to allow the > application to call up functions that it elects by picking up the correct > addresses of these functions via indexing. However, after reading the > examples provided in U-boot, I have not seen any motion of saving the > value of the register. However, vwhich register U-boot chooses to use > would be processor dependent. This is just my two cents. > > (2) Is uploading currently being supported in U-boot's tftp > implementation? Judging from the do_tftp codes, it looks that only > "downloading" action is supported not "uploading". Could someone confirm > that or point to the place where "uploading" is implemented? > > Any input would be greatly appreciated. Thanks. > > > > Kow9loon > -- View this message in context: http://www.nabble.com/stand-alone-application-tf3498698.html#a9779774 Sent from the Uboot - Users mailing list archive at Nabble.com.