nextpnr/bba
2018-07-25 17:53:01 -07:00
..
bba.cmake just Boost_PROGRAM_OPTIONS_LIBRARY 2018-07-25 12:08:13 +02:00
main.cc clangformat 2018-07-25 17:53:01 -07:00
README.md Add bba README 2018-07-25 13:06:21 +02:00

Binary Blob Assembler (bba)

This tools read a text file describing binary data, and write that binary data file. The usual flow is that the input to bbasm is generated by a python script, and the output is linked or loaded into a C program, using (packed) structs to interpret the binary data.

All references (pointers) are encoded als 32 bit byte offset relative to the location of the pointer. This way the resulting binary blob is position independent.

Valid commands for the input are as follows.

pre

When a C file is generated as output, all the "pre" strings will be included before the binary blob.

post

When a C file is generated as output, all the "post" strings will be included after the binary blob.

push

All following commands up until the matching "pop" will be writen to stream . Everything written to the same stream will end up in a continous region of the output.

pop

End of a push..pop block.

label []

Add a label for the current position.

ref []

Add a 32-bit reference to the specified label. The reference will be a byte offset relative to the memory location of the reference itself.

u8 []

Add a 8-bit value to the binary blob.

u16 []

Add a 16-bit value to the binary blob. Note that the input must be structured in a way that ensures that all u16 are aligned to 2-byte addresses.

u32 []

Add a 32-bit value to the binary blob. Note that the input must be structured in a way that ensures that all u32 are aligned to 4-byte addresses.

str

Add a reference to a zero-terminated copy of the specified string.