1. Intro
2. Running code on linux
3. Running code on uboot
4. HG Notes
5. Background Resets
1. Intro
pclock2 is Prototype Clocking code for the IRSG controller.
Code is located in /home/sgir/src/pclock2 on the IRTF network.
These files can be compile into pclock(Linux Host) and sgir's uboot.
ircommand.c/.h - commands for plcock or sgir uboot.
ir.c/.h - ir arrays genenal functions.
al.c/.h - aladdin specific functions.
h2.c/.h - h2rg specific functions
pnp.c/.h - test code to exercise/test CE and clv stuff.
Other pclock file are linux specific:
plcock.c - appplication main file. Does the command execution.
common.c/.h - provides common or utility-type C functions.
2. Running code on linux
1. Recompie for you linux system:
> make clean
> make
2. Command - you can view pclock.c file's Parse_table[] for a list of
command you can execute at the command prompt (Parse_table[] is
similiar to uboot's cmd_table[]).
3. pclock.c's main() contains this call:
ircommand_initial_setup( IRDEVICE_AL ); /* boot time setup for ircommand */
Initilaize memory and set up the default IR Device to Aladdin.
(H2RG clocking code is not ready yet, and will be merged into pclock in the future).
3. Running code on uboot
The code for ircommand, ir, al, h2 can be execute via the sgir uboot. How?
1. soft link needed source files. And add to Makefile
cd gpc/src-ppc405/u-boot/daq3u_apps
ln -s /home/sgir/src/pclock2/ircommand.h
ln -s /home/sgir/src/pclock2/ircommand.c
ln -s /home/sgir/src/pclock2/ir.h
ln -s /home/sgir/src/pclock2/ir.c
ln -s /home/sgir/src/pclock2/al.h
ln -s /home/sgir/src/pclock2/al.c
ln -s /home/sgir/src/pclock2/h2.h
ln -s /home/sgir/src/pclock2/h2.c
ln -s /home/sgir/src/pclock2/pnp.h
ln -s /home/sgir/src/pclock2/pnp.c
vi Makefile
add: DAQ3U_APPS += ircommand ir al h2 pnp # Add to compile sgir code
2. add command to the commandline interface code.
cd gpc/src-ppc405/u-boot/common/
vi cli_comlist.c
1. Add prototypes, ie: extern Function t1;
2. Add entries to cmd_table[] , ie: {"t1", t1, "test1"}
3. Running the code.
After stage2 is started, the 1st command you should run is 'irinit'.
4. HG notes and source control
clones should be push/pull to /home/sgir/src/pclock2.
4.1. 'sgir' created the HG Repository by:
cd /home/sgir/src/pclock2
hg init
hg add *.c *.h makefile POA.txt README.html save.me
hg commit
Now 'sgir' has a working directory and a repository.
'sgir' continues modification this working copy.
When 'sgir' is ready to update his repository with a new version:
hg status - summary of changes between repository and working copy.
hg diff - diff of changes between repository and working copy.
hg commit - commit all changes to the repository
If someone pushes an update to 'sgir', then 'sgir' need to do:
hg update - updates the repository's working directory
It's likely others can't update 'sgir''s repository (permission problems), so
'sgir' can pull those update:
hg pull /home/joe/project - pulls in changes from joe's repository
hg update - update 'sgir''s working copy
4.2. Tony wants to join in.
To get a copy of sgir's repository (not the working copy):
hg clone /home/sgir/src/pclock2 pclock2
To re-synhonize a working copy (Update Tony's copy with sgir's repository):
hg pull - to sync the repository
hg update - to update the working copy
Tony modify his working directory. Change can be commit
hg commit
To updload changes to sgir's repository:
hg push
4.3 Other HG commands
hg log - history of repository
hg status - display current status (files that changed).
hg diff - shows changes between repository and working copy.
5. BackGround Resets (BGR)
The linux host will perform the background resets. Host parameters are:
bgr.enable { off | on } - enable BGR
bgr.period sec - BGR period. Range is 0.2 to 10.0 seconds. Defaults: AL=2.0, H2RG=??.
Controller commands are:
bgr.wait.ms ms - minimum time between a BGR and a GO. Range 1 ms to 60,000 ms.
Defaults: AL=250, H2RG=??
al.bgr.usec usec - Reset time for AL devices. Default is 40 usec.
bgr.go - command used by host to do a background reset.
5. Questions