摘要: 本应用程序说明描述了在需要更改MxTNI的用户shell slush时所采取的步骤。您将学习如何添加自己的命令、修改功能、重新构建应用程序以及减小其最终大小。
许多嵌入式设备程序员关心的主要问题是其应用程序的健壮性。设备是否总是能够启动并执行其预期功能?在MxTNI 微控制器上获得这种可靠性的最简单方法之一是将主应用程序放在闪存中。但是,通过在这里放置代码,默认应用程序slush将被覆盖。大多数开发人员都希望保留slush的功能,并获得应用程序的健壮性。这可以通过对slush进行修改,添加所需的功能来实现。本应用程序说明描述了修改slush所需的步骤,包括在何处更改代码。它还讨论了如何重建应用程序和减少泥浆大小的方法。
在您可以更改slush源代码之前,您必须从发行包中提取它。slush的所有源代码都可以在SlushSrc.jar文件位于src每个MxTNI版本的目录。一旦你完成了这些,你就可以开始修改了。最常见的两种修改是向shell中添加自定义命令,以及将另一个程序的功能与slush的特性结合起来。下面概述了每个任务所需的步骤。
第一步是为命令编写代码。在slush中的每个命令都必须实现com.dalsemi.slush.command.SlushCommand接口。这个接口有两个方法:
字符串getUsageString ;void execute(SystemInputStream in, SystemPrintStream out, SystemPrintStream err, String[] args, Hashtable env)抛出异常;
的getUsageString方法应该返回您希望用户在使用slush时看到的消息帮助命令。真正的工作是在执行方法。在这里,您将添加命令运行时要执行的代码。的,,和犯错参数分别是控制台的标准输入流、输出流和错误流。的arg游戏数组将包含用户在执行命令时输入的所有参数。的env参数将包含各种系统属性和环境变量。
完成命令编码后,需要将其添加到slush的已知命令列表中。找到initializeShellCommands方法中的Slush.java文件位于com.dalsemi.slush包中。在此方法中,创建命令的实例并将其传递给addCommand方法com.dalsemi.slush.CommandInterpreter类。该方法有如下原型:
addCommand(字符串名称,SlushCommand执行器)
第一个参数是您希望用户在slush命令行输入以运行命令的字符串。第二个参数是命令本身的实例。
如果您希望代码在每次运行slush时都运行,而不仅仅是在输入某个命令时运行,则需要对com.dalsemi.slush.Slush类。进行这些更改的最佳位置是在主要方法。在slush的默认实现中,只有一行源代码,一个调用泥浆构造函数。在构造函数中,初始化网络服务器,添加所有命令,并执行启动文件。方法调用之前或之后添加代码泥浆构造函数,基于程序的需要。
既然已经进行了更改,就需要将新源代码编译成一个文件,以便加载到MxTNI的闪存中。第一步是将源代码编译成类文件。使用任何你喜欢的工具来完成这一步。如果在windows系统上使用javac,可能会使用以下两个命令行:
目录%SlushSource%\*.java /B /S /ON;%TINIBin%\modules.jar -d %SlushBin% @files
在哪里% SlushSource %这个目录包含了所有的源代码和你的修改,% TINIBin %是MxTNI SDK的bin目录,其中% SlushBin %是希望存储结果类文件的目录。一旦您解决了任何编译错误,使用BuildDependency工具将类文件转换为MxTNI的flash文件格式。下面的命令用于构建MxTNI版本的slush(注意:这个命令应该在一行中输入):
java -classpath %TINIBin%\tini.jar BuildDependency -f %SlushBin% -d %TINIBin%\ tini.db -o slush. jarMAILTO -fake -noreflect- ref com.dalsemi.slush.command.SlushCommand -ref com.dalsemi.protocol.mailto.Handler
在哪里% TINIBin %和% SlushBin %与前一步相同。在为TINIm390模块构建泥浆时应该使用该命令。如果您需要为TINIm400构建雪泥,请添加“470100 - t”切换到上面的命令行。执行该命令将导致slush.tbin文件,可以加载到MxTNI的闪存。
在对slush进行多次更改之后,您将发现结果slush.tbin文件太大,无法装入TINIm390闪光灯的一侧。除非您在MxTNI板上添加了额外的闪存,否则您只有65,280字节可用,并且您必须减小应用程序的大小。最简单的解决方案是删除一些不需要的slush命令。控件中的命令列表com.dalsemi.slush.command打包并决定要删除哪些。其次,编辑initializeShellCommands方法中的Slush.java文件并删除对的调用CommandInterpreter.addCommand配置所选命令的位置。接下来,按照前一节中的步骤重新构建slush,确保在运行最后一步之前删除了所删除命令的类文件。继续删除命令,直到泥浆达到适当的大小。
通过对slush进行添加和修改,您可以将项目的功能与slush中已有的许多功能合并在一起。由于您的应用程序现在将加载到MxTNI的闪存中,而不是驻留在RAM中,因此您的应用程序也将获得健壮性。
社群二维码
关注“华强商城“微信公众号
Copyright 2010-2023 hqbuy.com,Inc.All right reserved. 服务热线:400-830-6691 粤ICP备05106676号 经营许可证:粤B2-20210308