Commit Graph

6 Commits

Author SHA1 Message Date
Eric Caruso
748848e8a2 lightbar: test programs for seq type PROGRAM
These programs test various bytecode interpreter functions.
rainbow-shift, red-green-blink and green-pulse produce visual
effects, whereas the other three programs test error cases.

bad-jump makes sure the interpreter stops if the PC goes
out of bounds. bad-opcode makes sure the interpreter stops if it
does not understand the instructions it is decoding.
infinite-jump makes sure that sticking a tight loop in the EC
(i.e., one not perforated with any DELAYs, RAMP_ONCEs, or CYCLE*s)
does not cause it to hang or crash. bad-decode-8 and -32 test that
malformed instructions are detected while decoding the
instruction's immediate data.

BUG=None
BRANCH=ToT
TEST=In simulator/scp files to device and test

Change-Id: I6c189997a13e7c6196daa28eb74d5506b5288f2b
Signed-off-by: Eric Caruso <ejcaruso@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/219565
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2014-09-26 01:12:45 +00:00
Eric Caruso
fb5ff7b1bb lightbar: add seq type PROGRAM for user-programmable sequences
This diff allows the user to send small programs to the EC and
gain control of the lightbar. Right now, this is only exposed
through ectool, and sysfs support will come later.

To send a program to the EC, use
$ ectool lightbar program /path/to/program.bin
and then start running the program with
$ ectool lightbar seq program

BUG=None
BRANCH=ToT
TEST=Using the above steps with hand-assembled programs.
  Checked that infinite bytecode loops do not hang the EC.
  Checked that bad opcodes exit with an error.
  Stress tested pushing programs and changing sequences.

Signed-off-by: Eric Caruso <ejcaruso@chromium.org>
Change-Id: I635fb041a5dc5c403f7c26fb9a41b5563be9b6b7
Reviewed-on: https://chromium-review.googlesource.com/219558
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2014-09-25 07:59:16 +00:00
Anton Staaf
dab91fe9ec extra: Move lightbar simulator into subdirectory
This clears the top level extra directory for additional
extras.

Signed-off-by: Anton Staaf <robotboy@chromium.org>

BRANCH=None
BUG=None
TEST=cd extra/lightbar; make; lightbar

Change-Id: If05a768e4d33cbf21b2ce47a056c960a95728558
Reviewed-on: https://chromium-review.googlesource.com/217537
Tested-by: Anton Staaf <robotboy@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Commit-Queue: Anton Staaf <robotboy@chromium.org>
2014-09-11 20:00:21 +00:00
Bill Richardson
4e8751372a Make lightbar simulation compile again
This just brings the competely unsupported but occasionally useful lightbar
simulation tool up to date with the rest of the source tree so it will
compile and run again.

BUG=none
BRANCH=ToT
TEST=manual

cd extra
make
./lightbar

Change-Id: Iafeaaa5ac56a4b711c63d2c64d8c51ab4b324104
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/213206
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2014-08-20 21:07:15 +00:00
Bill Richardson
f4b12223e2 Tweaks to lightbar simulation
Improve the get_time() function, add support for GNU readline if desired.

BUG=none
BRANCH=ToT
TEST=manual

cd extra
make
./lightbar

Change-Id: Iedf84253b0e616a6a1b502415a487a2e6248cb2e
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/202698
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2014-06-05 23:14:34 +00:00
Bill Richardson
c46f569a39 Add standalone lightbar simulation tool
This adds an "extra/" directory to hold various experiments and optional
programs. With this change, we add a tool that can simulate the lightbar
behavior on the build machine. That can be used to experment with variations
in the lightbar pattern code without needing to reflash a Pixel with a new
EC to see the effect.

There is no functional change to the EC code, just a couple of #ifdefs to
allow common/lightbar.c to be compiled separately from the EC.

BUG=none
BRANCH=ToT
TEST=make buildall -j

  cd extra
  make
  ./lightbar

You may need to install the libxcb1-dev package on your build machine.

Change-Id: I847ce7ea97cae792b1de1b91f488819e873b6555
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/199883
2014-05-15 05:20:14 +00:00