why sig->start_bit <= 64 ?
chasedreamer opened this issue · 1 comments
assert(r == 1 && sig->start_bit <= 64);
function:static signal_t *ast2signal(mpc_ast_t *top, mpc_ast_t *ast, unsigned can_id)
file:can.c
thanks!
That should not be an assert, it should be a fatal error, the code generator cannot deal with signals larger than 64 bits in length. Really it is just the C code generation option that has the problem, not the XML/CSV options, so it we could instead deal with it in each output format module. The code generator could instead ignore that specific signal and issue a warning.
The maximum length of a CAN message, as far as I am aware, is 8 bytes. So when I started this project I made that assumption. I have since seen DBC files with larger messages in them, I was not aware of them when I started the project. It was a design error, but the C module would need a lot of rework in order to accommodate larger message sizes.