> On Sep 22, 2019, at 18:45 , Chris Johns <chr...@rtems.org> wrote: > > On 23/9/19 12:33 am, dufa...@hda.com wrote: >>> On Sep 22, 2019, at 07:12 , <dufa...@hda.com> <dufa...@hda.com> wrote: >>>> On Sep 21, 2019, at 17:29 , dufa...@hda.com wrote: >>>>> On Sep 21, 2019, at 17:04 , Chris Johns <chr...@rtems.org> wrote: >>> (…) >>>>> The tester is designed to avoid cycling power. A clean working target >>>>> should >>>>> only need a single power on at the start and a single power off at the >>>>> end. >>>>> Repeated power cycling can stress power supplies and targets, some switch >>>>> modes >>>>> do not like it. Some targets have hardware reset issues and may need a >>>>> power >>>>> cycle and I have seen uboot get wedged. The power cycle logic is for those >>>>> cases. I would not expect this being needed on each boot. Also it is a >>>>> reset >>>>> which can be a power cycle or a wired reset signal however some SOCs >>>>> these days >>>>> have separate power on reset (POR) logic and a reset signal logic. >>>>> >>>>> Chris >>>> >>>> You are bringing up most of my concerns in your response, I’ll go over >>>> your response properly tomorrow AM when I’ll have free time. Thanks. >>>> >>> I think if I change "rtems_test_assert()" to invoke >>> "exit(RTEMS_FATAL_SOURCE_ASSERT)" instead of "exit(0)" and then use the >>> following for the reset expression it will do what I would like. I'm sure >>> there is a better way to do that regular expression but I'll use this for a >>> test. >>> >>> target_reset_regex = .* RTEMS_FATAL_SOURCE_BDBUF, .*|.* >>> RTEMS_FATAL_SOURCE_APPLICATION, .*|.* RTEMS_FATAL_SOURCE_BSP, .*|.* >>> RTEMS_FATAL_SOURCE_ASSERT, .*|.* RTEMS_FATAL_SOURCE_STACK_CHECKER, .*|.* >>> RTEMS_FATAL_SOURCE_EXCEPTION, .*|.* RTEMS_FATAL_SOURCE_SMP, .*|.* >>> RTEMS_FATAL_SOURCE_PANIC, .*|.* RTEMS_FATAL_SOURCE_INVALID_HEAP_FREE, .* > > The tester knows the test has finished with '*** END OF TEST ' so it will end > the test when this message is seen. If your host is fast or the console is > buffered the test will finish and be looking for the test begin message and > if a > reset trigger is seen in the output from the end of the previous test the > board > will reset as part of the start of the next test. > > In theory a good quality target should not need any reset triggers however it > will need a start trigger to catch a test failing without any output and > restarting. > >> This doesn't work as I'd hoped. There is pending input to the tester from >> the tested device's serial port console. If the tester matches the reset >> condition *after* the first reset but *before* the board restarts it will >> issue the reset again. >> >> In the case of "unlimited.exe" the following is what happened. I watched >> the tester power cycle the board off and on about 15 times before it >> advanced to the next test. >> >> After issuing the reset command should the tester advance through the >> console output without taking action until it sees the start expression? >> >> (...) >> ] TEST3 : signal task 0a01034e to delete, task 844 ending. >> => target reset condition detected >> => target reset: ./power-ctl 1 off-on >> ] TEST3 : signal task 0a01034f to delete, fatal source: >> RTEMS_FATAL_SOURCE_EXCEPTION, error code: 9018872 >> ] exception vector 7 (0x7) >> ] next PC or address of fault = 0x00890038 >> (...) >> ] executing thread ID = 0x0a01034f, name = ai45 >> ] Stack Trace: >> ] IP: 0x00890038, LR: 0x0089003a >> => target reset condition detected >> => target reset: ./power-ctl 1 off-on >> ] fatal source: RTEMS_FATAL_SOURCE_EXCEPTION, error code: 9018088 >> ] exception vector 3 (0x3) > > Is this from the power being turned off? If it is this would cause a loop if > in > the reset trigger. >
No, whatever error happened in "unlmited.exe" generated a cascade of errors and so they are all in the console output for the tester to read. The tester reads through them sequentially and keeps cycling power off and on. I did put in the change for the tester to cycle to a start expression after it issues a reset without issuing multiple resets. That almost did what I wanted in that it cycled to the start without any more resets. The tester did not end the test, though, so it issued a second reset when the board requested a TFTP transfer request. I'll think about this a little more, I don't think these are really RESET regular expressions but an "outside of the current tester's framework" failure regular expression. These RTEMS_FATAL_FUBAR errors mean: - The test has failed, and the test is going to reset the board momentarily. There's no need for the tester to do a reset, the tester can fail this test and advance to the next test and download the next test at the next TFTP transfer request. - The test has failed catastrophically, and we're now going to get a possibly infinite cascade of these errors. Rather than wait for a three minute timeout of cascading errors it would be nice to count to a certain number, reset, fail the test and continue to the next one. My goal is also to approach the ideal of an initial power-up / final power-down power sequence. I have a few thoughts about the user input tests as well but I'll think more about it first. Peter ----------------- Peter Dufault HD Associates, Inc. Software and System Engineering This email is delivered through the public internet using protocols subject to interception and tampering. _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel