feat: write RISC-V binary file with weakly linked, overridable symbols

- Adds functionality to write RISC-V binary files using weak symbols, allowing overrides in linked projects
- Supports flexible integration where default binary data can be replaced by custom definitions if needed
This commit is contained in:
Gatsby
2024-10-31 20:00:42 +08:00
parent a7cf13b37a
commit 79f59d15f7
4 changed files with 26 additions and 5 deletions
Binary file not shown.
+14
View File
@@ -5,6 +5,17 @@
#include "cx9261adriver.h"
#include "utils.h"
#ifdef __cplusplus
extern "C" {
#endif
__attribute__((weak)) uint32_t CX9261A_RiscvBinLen = 0;
__attribute__((weak)) uint8_t *CX9261A_RiscvBin = nullptr;
#ifdef __cplusplus
}
#endif
namespace CX9261A {
void initialChip()
@@ -672,6 +683,9 @@ void configRISCV(const bool on)
if (on) {
writeSpi(0x071, 0x00);
writeSpi(0x071, 0x29);
for (size_t i = 0; i < CX9261A_RiscvBinLen; i++) {
writeSpi(0x070, CX9261A_RiscvBin[i]);
}
writeSpi(0x236, 0x0F);
writeSpi(0x20A, 0x01);
writeSpi(0x071, 0x26);