forked from Sentinel65X/Sentinel65X-Handbook
Work on fleshing out sections
This commit is contained in:
parent
f4d97edbf2
commit
d52c1cdecc
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
gitea: none
|
||||||
|
include_toc: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# C Compiler
|
||||||
|
|
||||||
|
The cross-development SDK for Sentinel 65X requires the Calypsi C/asm toolchain, targeting 65816. The SDK does not include Calypsi, which is available as freeware from [the Calypsi website](https://calypsi.cc).
|
||||||
|
|
||||||
|
## Language
|
||||||
|
|
||||||
|
Calypsi supports a fairly modern dialect of C, essentially C11 with some additions from later C standard revisions. The C standard library it supplies is used by the SDK, modified to work with the Sentinel 65X kernel installed to the on-board flash ROM.
|
||||||
|
|
||||||
|
## Toolchain
|
||||||
|
|
||||||
|
Calypsi also provides a 65816 assembler, a linker, and a librarian, all of which are used by the SDK. Your SDK projects can be written in C, assembly language, or a mix of the two.
|
||||||
|
|
||||||
|
## Libraries
|
||||||
|
|
||||||
|
The SDK will include several useful libraries ready to use in your projects, under license terms which place no obligations on your own code's license terms.
|
|
@ -22,3 +22,5 @@ This is followed by one or more segments, packed with no padding or separator. E
|
||||||
This enables the binary loader to be extremely simple, as the data to be read into memory is always read from a contiguous region of memory, and the information provided is sufficient to make use of the C standard library `memcpy()` function.
|
This enables the binary loader to be extremely simple, as the data to be read into memory is always read from a contiguous region of memory, and the information provided is sufficient to make use of the C standard library `memcpy()` function.
|
||||||
|
|
||||||
The final segment is special: its target address represents the entry point to the executable, and its length of data value is always `0x000000`. The loader can easily detect this to identify when loading is done and where to enter the program.
|
The final segment is special: its target address represents the entry point to the executable, and its length of data value is always `0x000000`. The loader can easily detect this to identify when loading is done and where to enter the program.
|
||||||
|
|
||||||
|
The Sentinel 65X SDK will be configured to produce PGZ format executables by default, with the option to instead export to a file suitable for writing to a ROM cartridge.
|
||||||
|
|
Loading…
Reference in New Issue