Changeset 3404


Ignore:
Timestamp:
Nov 1, 2012, 12:32:08 AM (3 years ago)
Author:
quozl
Message:

OLPC XO-4 - touchscreen rework for firmware 0.0.0.6, which contained new behaviours not previously advised by Neonode

Location:
cpu/arm/olpc
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpu/arm/olpc/nn-touchscreen.fth

    r3401 r3404  
    1818create nn-os            \ open short test
    1919create nn-fll           \ forced LED levels test
    20 create nn-version       \ version display
    2120create nn-watch         \ graphical signal tests
    2221
     
    2928d# 15 value xleds
    3029d# 11 value yleds
     30
     310. 2value version#
     32: get-version  ( -- version.d )  version#  ;
     33
     34: (.)'  ( version-segment.w -- )  (.) type  [char] . emit  ;
     35
     36: .version  ( version.d -- )  lwsplit (.)' (.)'  lwsplit (.)' (.)'  ;
     37
     38: show-version  ( -- )
     39   ." Neonode zForce Touch Driver firmware version "  version# .version  cr
     40;
    3141
    3242\ XXX these are really platform-related, not touchscreen-related
     
    4454[then]
    4555
    46 : x>x'  ( x -- x' )  screen-w swap -  ;  \ reverse x coordinate
     56defer x>x'  ' noop to x>x'
     57: (x>x')  ( x -- x' )  screen-w swap -  ;  \ reverse x coordinate
     58: set-reverse-x  ['] (x>x') to x>x'  ;
    4759
    4860: set-gpios
     
    5668
    5769\ Neonode requested 250 ms
    58 \ we observe for 0.0.0.5
    59 \ less than 38 ms yields no response to reset,
    60 \ 40 ms yields 100 ms overall version check, and
    61 \ 45 ms yields 84 ms overall version check.
    62 : reset  ( -- )  touch-rst-gpio# dup gpio-clr gpio-set  d# 50 ms  ;
     70: reset  ( -- )  touch-rst-gpio# dup gpio-clr gpio-set  d# 250 ms  ;
    6371: hold-reset  ( -- )  touch-rst-gpio# gpio-clr  ;
    6472: no-data?  ( -- no-data? )  touch-int-gpio# gpio-pin@  ;
     
    105113: read-boot-complete  ( -- )  h# 07 d# 0 anticipate  ;
    106114
     115: read-version
     116   h# 1e h# 01 h# ee  3 bytes-out  h# 1e d# 100 anticipate
     117   pbuf 2+ c@ h# 1e <> abort" bad response"
     118   pbuf 9 + le-w@  pbuf 7 + le-w@ wljoin  pbuf 5 + le-w@ pbuf 3 + le-w@ wljoin
     119   to version#
     120;
     121
    107122: initialise  ( -- )  h# 01 h# 01 h# ee  3 bytes-out  h# 01 d# 20 anticipate  ;
    108123
     
    126141: configure  ( -- )
    127142   configure?  if
     143      read-version
     144      version# h# 6. d<  if  set-reverse-x  then
    128145      initialise
    129146      set-resolution
     
    200217   loop
    201218;
    202 
    203 
    204 
    205 [ifdef] nn-version \ version display
    206 : (.version)  ( addr -- )
    207    dup c@  over 1+ c@  bwjoin           ( addr version )
    208    (.) type
    209 ;
    210 
    211 : .version  ( -- )
    212    pbuf 3 +  3 0  do                    ( addr )
    213       (.version) 2+
    214       [char] . emit
    215    loop                                 ( addr )
    216    (.version) drop                      ( )
    217 ;
    218 
    219 : (version)  ( -- )
    220    h# 1e h# 01 h# ee  3 bytes-out
    221    h# 1e d# 30 anticipate
    222    pbuf 2+ c@ h# 1e <> abort" bad response"
    223 ;
    224 
    225 : test-version  ( -- )
    226    (version)
    227    ." Neonode zForce Touch Driver firmware version "
    228    .version
    229    cr
    230 ;
    231 
    232 : get-version  ( -- version.d )
    233    (version)
    234    pbuf 9 + le-w@  pbuf 7 + le-w@ wljoin  pbuf 5 + le-w@ pbuf 3 + le-w@ wljoin
    235 ;
    236 
    237 [then]
    238219
    239220
     
    1004985: mb-smt  ( -- error? )
    1005986   open  0=  if  true exit  then
    1006    test-version
     987   show-version
    1007988   close
    1008989   false
     
    10351016   diagnostic-mode?  if
    10361017      0 to faults
    1037       [ifdef] nn-version  test-version  [then]
     1018      show-version
    10381019      [ifdef] nn-os       test-os       [then]
    10391020      [ifdef] nn-fss      test-fss      [then]
  • cpu/arm/olpc/nnflash.fth

    r3402 r3404  
    1818: nn-up-to-date?  ( file$ -- flag )
    1919   2drop  h# 0000.0000.0000.0006.  \ FIXME: get version from file
    20    get-touchscreen-version
     20   get-touchscreen-version   \ 20ms first time, 270ms subsequent
    2121   d<=
    2222;
Note: See TracChangeset for help on using the changeset viewer.