Difference between revisions of "Start Development"
From Rigol Homebrew Wiki
(→Pitfalls) |
(→Pitfalls) |
||
Line 52: | Line 52: | ||
CALL Set_KeyLock | CALL Set_KeyLock | ||
</pre> | </pre> | ||
− | : The keyboard is locked because the serial interface is used to upload and start your software. | + | : The keyboard is locked, because the serial interface is used to upload and start your software. |
: You can see that its locked if the only keycode you get is KC_KEYLOCK (0xc9). | : You can see that its locked if the only keycode you get is KC_KEYLOCK (0xc9). |
Revision as of 16:36, 22 December 2011
Sorry, not complete yet...
Download the Toolchain from https://github.com/krater/rigol-toolchain
and follow the instructions in the README file...
howto compile examples
links to blackfin prm
Pitfalls
- Alignment
- Every command must be word aligned. When you access the memory, word accesses must be word aligned, long word accesses must be long word aligned.
- Don't use the .align directive . It doesn't works with the toolchain. Use .byte directives to do that.
- Subroutines / Calls
- Every subroutine that calls subroutines must start with LINK and end with UNLINK to save the return address to the stack. The blackfin CPU doesn't do that automaticly.
Example:
sub: LINK 0x0 ... CALL sub2 ... UNLINK RTS
- STOP-Mode
- Switch your scope to the STOP-Mode if you don't need capturing during your software is working. Sometimes i got unpredictable crashs when the device was in AUTO-Mode. Hope to find a reason for this thing soon.
- Unlock the Keyboard
- If you need keyboard interaction, first you should unlock the keyboard for user inputs.
- This lines will do the job:
R0=0 CALL Set_KeyLock
- The keyboard is locked, because the serial interface is used to upload and start your software.
- You can see that its locked if the only keycode you get is KC_KEYLOCK (0xc9).