2024.10.14 c_cpp_properties.json 中 "intelliSenseMode": "linux-gcc-x86",时 sizeof(long)==4 "intelliSenseMode": "linux-gcc-x64",时 sizeof(long)==8 代码分析可以识别数组对齐 #pragma pack(1) 注释这个之后 sizeof 的结构体会按未1字节对齐的来计算 2024.10.22 c_cpp_properties.json 中指定了编译器路径之后 如果此编译器不在path路径中 则会出现类似找不到 stdarg.h 的问题 指定了 riscv 的编译器之后 clear_csr write_csr 宏可以正常找到 2024.10.27 要解决 oem分区空间不够的问题, 如果把超出的部分添加在fw分区后面 应该是需要修改 ram.bin 的, 因为ram.bin 写入数据的长度是读取的分区size 这个size不能动 因为解压也需要使用这个参数 或者考虑添加在未压缩的ht.bin 文件后面? 2024.11.1 如果函数在库中被调用 则这个函数不能使用 extern 到链接脚本的函数 例如 gpio_pin_select 函数在 driver 库中被调用 则不能使用 sbl_parintf 但 board_load_oem_cfg 没有在库中被调用 可以使用 sbl_parintf 要解决个问题 可以用一个函数指针来强行定位到这个函数的地址 调用这个函数指针即可 2024.11.1 layout_index 并不最终决定使用的layout ,获取layout时会根据 flash psram 来重新指定 2024.12.19 kl1 的 bootram.bin 编译出来存在sdata错位的问题 ,kl3没有这个问题 ,修改kl1的link_ram.lds之后就正常了 编译器使用的10.2.0版本,但是主线上编译器使用7.2.0版本编译出来就是正常的 要实现只编译某个部分 只需要把在上一级目录的Makefile中的 SUB_DIRS 参数修改为要编译的部分即可