This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C1294KCPDT:从另一个应用调用一个应用中存在的函数

Guru**** 2330830 points
Other Parts Discussed in Thread: CC2650
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/593008/tm4c1294kcpdt-calling-a-function-present-in-an-application-from-another-application

器件型号:TM4C1294KCPDT
Thread 中讨论的其他器件:CC2650

我的控制器中有一个引导加载程序和两个应用程序。 当这些应用程序存在于同一闪存中的不同位置时、我可以从另一个应用程序调用一个应用程序中存在的函数吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Naman、

    我假设该函数将驻留在引导加载程序部分、对吧? 否则、引导加载程序将依赖于"main"应用程序、这会很奇怪。

    有趣的问题、答案是肯定的。 但是、我只能考虑有关如何实现该目标的理论步骤:

    -您需要确切地知道函数的驻留位置。 当然、可以使用某种链接器指令来实现这一目的。

    -在不包含函数的应用程序上,您需要一个 extern 声明来组织参数和返回类型,可能需要一个宏来将调用定向到该固定地址。

    虽然没有人提供更直接的答复,但有两项建议需要进一步考虑:

    - Tivaware 函数包含 ROM_CALLS、这基本上是相同的情况:在本例中、运行位于"其他地方"的代码、在 ROM 中、而不是不同的闪存地址。 尝试查看 ROM_CALLS 在 Tivaware 中的工作原理、部分目标将得到解答。

    - CC2650 Launchpad (具有蓝牙/无线电和专用 ARM MCU 的芯片)的示例在同一 MCU 中使用两个单独的项目进行编译:一个用于蓝牙堆栈、另一个用于应用本身。 他们使用这种交叉调用概念。

    期待您在此处进一步了解您的发展!

    此致

    布鲁诺

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    布鲁诺

    感谢您的回复。

    我已成功实现它。 我可以使用以下代码来使用在引导加载程序应用程序中定义的函数、请注意、我的引导加载程序应用程序地址是0x00、另一个应用程序地址是、例如0x6000:

    //将矢量表地址设置为应用程序的开头。
    LDR R1、=0xe000ed08
    结构 R0、[R1]
    //从应用程序的矢量表加载栈指针。
    LDR R1、[r0]
    MOV SP、R1
    //从应用程序的矢量表加载初始 PC 并分支到
    //应用程序的入口点。
    LDR R0、[r0、#4]
    BX r0

    在这里、我必须调用整个引导加载程序应用程序、即更改矢量表地址、加载栈指针、从引导加载程序的矢量表加载初始 PC 并分支到其入口点。

    这需要很多周期。 我必须首先转到引导加载程序应用程序的复位处理程序,到达其 main(),然后从此处转到所需的函数。 需要将函数的输出保存在闪存存储器中(因为如果我使用 SRAM、当我切换到另一个应用程序时、它可能会丢失)、以便在调用应用程序中恢复它。

    从引导加载程序应用程序返回时、我必须再次使用上述代码来分支代码、以返回到应用程序的复位处理程序。 在某种程度上、我可以在引导加载程序应用程序中调用该特定函数、然后在另一个应用程序中分支指令执行函数调用的特定点。 请提供建议。

    同时、我还将查看链接器指令。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    (有时)"想法简单"证明"简单"是"最好的"是不是可能的?

    根据这些(可能)"共享"函数的大小和数量、将此类函数与"两种"应用程序一起放置的速度更快、更简单、更好"、这是不是吗?  (这样就消除了您注意到的所有复杂性-以及(仍然是正确的)问题。)

    当您报告说、"成功实施"是否在所有潜在的运行条件下(真正、正确)测试/验证了"成功"?    (甚至那些被认为是"罕见/不可能"的人?  (直至出现)

    以"代码大小缩减"换取了"响应缓慢"和"增加了复杂性"、所述的实施在"特定"运行条件下可能"易受影响"。  (假设多个中断从(每个)分离的函数到达(实时)。)

    请注意、即使供应商(看起来)使用了这样的(共享函数、代码设备)、我们也不知道他们的动机和限制、也不知道(实际上)他们有多全面(测试/验证)!    错误报告、勘误表、甚至 API"修复"-所有这些都表明(甚至)供应商可能"偶然"。

    "风险奖励"必须在此处扮演(部分)角色-"奖励"似乎(不)过于引人注目-并且风险(超出已确定的风险)可能等待发现...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    啊!!!

    这就是我从未尝试过的原因!

    绝对正确! 功能不能这么大! 在具有256K 或更高容量的器件中节省大约100个字节、并增加所有这些复杂性!

    但是、知道如何真正做到这一点不会受到伤害。 欢迎从 Naman 进一步透露消息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好。

    请注意"第2至最后"一段 我刚刚编辑/添加了。

    了解"如何"增加复杂性-同时"邀请"风险-可能会非常伤害您!   (VCS 特别努力搜索-识别-然后"输出"大多数此类实施!)

    我建议、这份深思熟虑且有才华的海报可以通过向他的计划/项目添加真正的功能来获得更好的效果-而不是通过(尝试)"节省"几 KB!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 CB1、
    我喜欢您对海报的推荐!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好(熟练)供应商朋友 Charles、

    谢谢-非常感谢!   (我最好的猫王——除了我的意思。)

    我观察到、"并非总是"做海报问题/问题、引导他们(高效或安全地)进入"承诺的土地"。   作为一个具有(或许)比大多数技术 Biz 经验/成功更多的人-我尝试建议"替代方法/方法"-我知道这是"成功的"。    (当我感觉到海报"接近"高悬崖时出现)

    我最常"证明/支持"这些建议-以便逻辑(希望)发挥作用-提高海报的信心和接受程度。    (此类方法有助于公司赢得销售和增长...)

    我可以用这一时间感谢您和 Bob (每天)为您提供的巨大努力和帮助吗?    你们两个人非常感谢   再次感谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我理解您的担忧和我邀请的风险、但这是我们目前的要求。 在从一个应用程序分支到另一个应用程序时、所有中断也必须被禁用。 因此、中断也存在问题。 我再次尝试尽可能了解这件事、以降低风险。

    我已经测试过、从一个应用程序到另一个应用程序的入口点仅是复位处理程序。 但是、我们可以尝试在复位处理程序本身中使用分支操作来跳转到所需的地址、这将减少执行整个代码的周期(在 RESET_handler 和函数调用位置之间)。 为此、我必须使用链接器衍生产品以及更多的东西。

    我还需要了解的一点是、 我在引导加载程序应用程序中设置 CPU 频率。 但是当我跳转到另一个应用时、我必须再次设置 CPU 频率、否则代码会在应用代码中挂起。 这对于启用 GPIO 引脚和初始化外设等其他操作是不正确的。 它们可以完美工作、无需在应用程序代码中再次初始化它们。

    我的新问题是:
    在 Tiva 中、当执行用于软件升级的引导加载程序时、启动文件首先将所有引导加载程序代码复制到 SRAM、然后代码从 SRAM 执行。 他们为什么这么做? 这是为了提高执行速度吗?

    2、假设我们为不同的应用分配不同的专用 SRAM 位置、并为每个应用将数据从闪存移至 SRAM。 现在、当我们从一个应用程序跳转到另一个应用程序时、对于我们离开的应用程序(因为它是专用的)、SRAM 数据是否会保持不变。 比如、我们能否直接从 SRAM 执行而不是闪存执行?

    我`s 说这是一项要求,这听起来可能是愚蠢的。 但是、如果可以、请尝试帮助我。

    此致、

    那曼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 CB1、
    我当时在想如何调用一个函数、该函数虽然驻留在同一个闪存中、但却是作为另一个应用程序的一部分编译的。 在我思考时、您的建议让我心不在脑。 如果函数不是很长、为什么不重复它呢?

    也感谢您的补充!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的朋友-我已经尽可能地进行指导和报告-您提出的方法不是我可以支持或推荐的方法。

    特别注意的是、"这是一项要求!"    为什么是这样?    谁设定:"这种要求?"    而且-他/她/团队是否充分意识到、熟练"投资于"这种额外复杂性的后果?

    请注意、我已经传达了(高度)熟练的指导/建议、即(非常)有能力、意识、实现(其他)-他们"不怕投资大笔资金"-但(仅限于)风险-奖励方程 在很大程度上倾向于"奖励"。    您的-不幸的是-没有!  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的指导 CB1_MOBILE。

    我更想说的是、我们正在尝试开发类似这样的代码。 在决定是否进行风险分析之前、仍需对风险进行分析。 您是否会了解由于实施该计划而可能存在的风险、以便我可以与我的小组讨论相同的问题?

    此致、

    那曼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    的确,查尔斯,正如我所指出的那样,"太频繁"海报问题/问题是"接受和采取行动"的,没有"海报(选择/倡导)的道路是否有意义?"

    海报"在这里迎风"、因为(最常见的)他们"不知道!"    然而,他们的"建议或期望的"攻击方法"往往是(赦免),"不被批判地接受--并采取行动"。

    公司/我致力于防止这种情况发生、因此这就像是"在一个桶中拍摄鱼"。 (鱼很大-桶很小- CB1很难错过!)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="Naman Kumar"]您是否会参与风险[/报价]

    非常简单:风险是、这种想法根本不起作用、或者需要大量时间来实施、或者它会引入在开发过程中可能未发现的未知错误、 只有在极少数因素组合出现且产品已上市时、才会出现这种情况。

    这个想法的专业人士:
    -这将节省一些闪存存储器(但实际上,这些函数需要多少闪存? 这种节省是否会对 TM4C129x 产生影响????)

    Con:
    ——无论实施情况如何,它都会减慢执行速度
    ——事情会令人困惑
    ——调试起来会非常困难

    您的"所有者"是否需要更多参数? 您使用了"要求"一词、这种说法经常会混淆... 要求是市场上功能可靠的产品。 发展过程中的许多其他选择都与如何实现这一目标有关,而且往往不是必须采取的路线才能实现命运。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您(独自)知道并控制您的应用程序-不应该(您的)"测试/验证"继续-甚至是扩展-以便识别(大多数)风险?

    然而(更多)为那些"(仍然)身份不明的"(实施此类"要求")而付出的努力似乎没有(任何)优点-难道不是吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢大家的指导。

    我们只是尝试实施这个东西、看看是否可以做到这一点。 n`t,雇主不知道所涉及的风险,并要求我尝试一下。

    我承认这项要求是一个错误的词,但我这样做了。

    此致、

    那曼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Naman、

    我要考虑的另一个问题是:我假设您知道您的功能可以在一个位置"创建和维护"、对吧? 最好将所有受信任/经验证的函数收集到一个静态库中、并在具有适当#include 的各种应用程序中使用它们。

    当然、您的两个项目都在闪存中有自己的汇编代码-但至少您使用的是"相同的经实践检验的函数"。 当源文件是常见的代码段时、我尽量避免将它们实际复制到我的项目中-这与使用 Tivaware 库的概念几乎相同。

    布鲁诺

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Bruno、

    你是对的。 但我在阅读你的答覆后,还有另一个问题。

    我们使用 ROM_FlashEras()等类型的库,这样我们的应用程序就可以使用 ROM 中已经存在的库,这样 ROM 中的这些已验证函数就不会与应用程序一起编译。 这当然是为了保存闪存。 这是如何工作的? 就像我没有使用我的代码编译 ROM 库一样、但它仍然可以使用 ROM 库。

    我尝试执行相同类型的操作。 使用其他位置的函数、这些函数不是使用我的应用程序编译的。 请解释一下。

    或者、ROM 库可能具有特殊状态、可从任何位置使用。 但我们无法在闪存中执行相同的操作。

    此致、

    那曼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Naman、
    是的、您可以。 再次阅读我对该主题的第一个回复、其中包含您的目标的要求。 只要您知道函数在闪存中的存储位置、就可以调用它。 我不知道具体的设置、但我为您提供了两种可能的调查途径。
    程序计数器只是一个地址、只要它是有效的地址、就可以绕道将代码执行到马尔代夫、就在我担心的情况下-当满足返回/函数结束时、它将返回到存储在堆栈中的上一个地址。 您稍后使用汇编代码发布的帖子在我看来不是正确的执行方式-您实际上是在转移 PC 流、而不是调用另一个位置中存储的内容。
    调查很有趣-但很耗时且容易混淆-但同样、如果您确实发现问题、为了好奇心、请告知我们。
    此致
    布鲁诺
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、

    我已经将函数的地址设置为 func1()作为应用程序映像的初始入口点。 但是、当我尝试从另一个应用程序调用该函数时(使用"blx" "n`t)、它不起作用。 通过这些设置、我只能通过复位处理程序进入应用程序、而不能通过其他方式进入应用程序。

    除了跳转到复位处理程序并设置 SP 和矢量表寄存器之外、是否还有任何方法可以进入应用程序?

    此致、

    那曼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    布鲁诺

    我读取了 ROM_CALLS 的工作情况。 它有一个 ROM_APPTABLE (函数指针数组)、它指向多个函数指针并根据传递的参数调用它们。 如果我们能够直接调用此表、则它将用作库。

    现在、我面临的问题是、我在一个应用程序中有一个函数指针、但我无法直接从另一个应用程序调用它。 只有当我传递复位处理程序地址、设置矢量表寄存器和 SP 时、它才会进入应用程序。

    可以帮帮我吗?

    此致、

    那曼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉、NAMAN、不要指望我来进行这样的发现! 我不知道也不能马上设置这样的测试。
    我仍然想知道您是否成功、请分享您的结果-同样、您仍然认为您应该能够转移执行... 但我想到的一个问题是:您是否需要为一个应用程序中的函数局部变量分配单独的 RAM、以便在不与另一个应用程序的函数发生冲突的情况下工作?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bruno、

    它发挥了作用。 您对 ROM_CALLS 的建议对此非常有帮助。 只需设置要从应用程序调用的函数的闪存地址。 知道地址后、使用以下格式调用函数:

    假设函数声明为"int sum (int、int)"、其地址为0x00020005 (确保地址是奇数、因为它用于 Thumb 代码)、然后从闪存中的任何位置使用以下语句调用它。

    (((int (*)(int、int))(0x00020005))(4、5);//(int (*)(int、int)))是必须使用的,我认为这是用于拼写
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢,Naman!!!
    感谢您的反馈。
    我仍然想知道在这种情况下 RAM 内存是如何分配的... 假设你的外国人函数中有变量、我想知道它们是否临时存储在与主程序相同的区域-这是我从未想到的。
    此致
    布鲁诺
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    据我所知、局部变量存储在 RAM 的同一区域、并在返回后销毁。 但`s,由于主要节目可能不知道其地址,因此,不能从外国人所在地的外国人活动中调用任何功能。 但是、如果传递该函数的地址、则可以从任何位置调用任何函数。

    您n`t 非常小心、并确保主程序不会遇到它所知的任何情况。

    此致、
    那曼
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [n`t user="Naman Kumar">您需要非常小心、并确保主程序不会遇到它所知的任何问题。 [/报价]

    相信这些"两个注意事项"是最明智的。

    到目前为止、"如此有限"的测试/验证是否能够执行(结果是"它正常工作!") 完全/正确接受/计数?    特别是考虑到第2项限制(上文)和其他多项限制----尚未抵达/注意到。

    仍然保持沉默-这种需要(任何)是正当的!   已引入风险要素-计划开发(已经)缓慢-这是(肯定)推动投资者/利益因素、"Krzy!"

    这些"兴趣点"是不受限制的、即如何及何时允许此类"改道"、以及如何进行调查/采取行动、因为它们 (必然)会将时间/精力从"中心任务"转移过来。   (此类(可能)是此处的"真正主旨"、但对于"风险回报"分析(之前建议)、仍然是掩码!)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    然而,CB1,人们常常爬上山,因为他们在那里! ;)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    布鲁诺-不是(有些)从这些山下来-(也是)因为他们在那里?

    转向"真正的路线"-无论"吸引(今天的"更有趣")-最佳保证"及时和恰当"(抵达港口)也是:(产品/项目交付。)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当然,他们真的跌倒了!
    事实上,我更喜欢既不在我的时间也不在我的资金上发生这种情况!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引述用户="Bruno Saraiva"]事实真相是,我更喜欢既不在我的时钟上也不在我的资金上发生这种情况![/引述]

    您的"偏好"-如 Bruno 所述-非常适合您担任技术经理和/或技术投资者!   

    假设"这里的大部分"(可能)是:"人员不足、资金不足、项目需求估计不足"不是、"关注项目的本质"假设"最优先?"

    我们是否应该注意到过去的"要求"最可能来自(过于)好奇的海报-而不是来自某些"虚拟"老板/投资者?   (部分)需要遵守纪律。   (很无聊...)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有时山也会围绕着它们。

    Robert

    最近在洛根山发现了一个不幸的登山者。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    说 Robert -我听到的是"正确的"-您正在向前10位"保持半日间"的人提供"免费"(但稍微有点被压根/用过)的 Launchpad (当然是由该山的跌落引起的)-以及(永远)"治愈"这样的"渴望攀登"?   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Naman Kumar">您是否会因为实施而面临风险、以便我可以与我的小组讨论相同的问题? [/报价]

    让我们看看(非详尽)

    • 可能丢失编译时间检查(取决于您使用的方法)
    • 如果再次在紧密环路中使用、可能会损失速度、具体取决于所使用的方法
    • 过时版本
      • 调用方可能需要被调用版本不支持的功能(请注意、这也可以反向工作)
      • 被称为应用程序的应用程序也可能有错误
        • 您必须强制对被调用的版本或进行更新
        • 呼叫者必须包含较早版本的修补程序,而被呼叫者必须为较旧的呼叫者提供允许
      • 这意味着在这两种情况下都必须有某种机制来确定被调用应用程序的版本和功能
    • 应用程序之间的环境不匹配

    我可以考虑 四种支持这种手动中断、函数表、不完整的链接和解释器的方法。 过去、嵌入式编译器直接支持不完整的链接方法的情况并不少见。 考虑到我目前为止没有找到需要调用 ROM 函数的可用内存量(以及不调用的原因)。 这样做有正当的理由、但除非这是一次教育活动、否则您可能不想一时兴起解决这个问题。

    Robert

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这座移动的山设法避开了登山者,但她被切断了,不得不等待天气才能拯救。 很抱歉、没有 Launchpad。

    Robert
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Robert Adsett"]......移动的山区设法避开了登山者、但她被切断了、不得不等待天气才能救援。   抱歉、没有 Launchpad。[/quot]

    拯救那些(类似地)"被切断"或其他"被炸/被弄糊涂"的人很好地描述了我的"工作人员招聘 M.O."  (尽管联合搜寻"永远不会被发现"(丢失)的小狗-土地接近第二个...)

    很遗憾看到您拒绝了"dinged" Launchpad。   工作人员/我(特别是)愿意接受那些"受石头袭击"的单位,这些单位感激和 (自发)弹出了他们的"魔鬼" 0Ω(9、10里拉"瘟疫")!  

    (如果没有错的话-朋友/海报/登山者 Bruno 是"现场"-并且看到了-要求一个"米!" (笑声) 来计算"下降"岩石的 dV/dt。)

    M.O.  作案手法  (犯罪意图者(通常)使用的(可识别的)正常技术/方法-尽管不限于(该)努力领域...)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不会责怪那些有裂缝的工作人员,我恐怕有关的董事会现在可能只适应低温操作。

    Robert  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Robert Adsett"]...不要责怪破解的员工、我担心相关的董事会现在可能只适应低温运行。

    “不要责怪那些被破解的员工?”   这不是"生存经验教训#1"-(即"只有一个在这里要求获得全部学分(为了成功)-同时否认任何失败的参与-始终且仅由 motley cue 引起...")

    对于您的"低温"板-我们被告知这里有一张海报-经常报告输出信号"空隙"-抓住您的(如此冷)板(太长)-现在运动了一个类似的、"两根手指离开"(右手)空隙。