- 博客(13)
- 收藏
- 关注
原创 s32k312之#pragma GCC section
当我们有大量的数据或函数要重新定位到一个特定的节时,我们不想一个接一个地给变量添加__attribute__,“#pragma GCC section”可以用来一次重新定位一个节中的多个变量/函数
2024-05-29 14:49:28
460
1
原创 s32k312之Relocating the stack in DTCM
第二步:将默认SRAM地址的符号更改为DTCM地址。__Stack_start_c0将在启动代码中分配给MSP。第三步:最后,我们需要更新用于ECC初始化的DTCM结束地址__INT_DTCM_END的边界。为了获得更好的MCU性能,有时可以将堆栈从SRAM重新定位到DTCM。现在我们可以从映射文件中看到,堆栈的起始地址就是DTCM的结束地址。第一步:默认DTCM和堆栈内存区域定义如下。我们需要从DTCM重新定义新的堆栈区域。
2024-05-29 14:13:49
511
原创 s32k312之Linking a binary file
第一步:指定存储二进制文件的内存区域。123_BINARY (R): ORIGIN = 0x00500000, LENGTH = 0x100000 /在某些情况下,我们需要将现有二进制文件链接到当前项目。例如HSE核心的固件,其他MCU的固件。通过映射文件,我们可以看到二进制文件存储在flash地址中0 x0050_0000。第二步:指定内存区域和SECTIONS区域之外的二进制文件的文件格式。
2024-05-29 13:55:55
305
原创 s32k312 之 Relocating data in DTCM
在init_table中定义了3个新符号(__RAM_DTCM_START, __ROM_DTCM_START, __ROM_DTCM_END),将元素总数从5更改为6,因为我们已经创建了ITCM部分。第一步:在链接器文件中定义DTCM部分。因为有两种数据类型。我们在DTCM中创建了.dtcm_data和.dtcm_bss两个部分。在zero_table中定义了2个符号(__BSS_DTCM_START, __BSS_DTCM_END),将总元素从3更改为4。第二步:获取链接器文件中数据初始化的边界地址。
2024-05-29 11:26:33
694
原创 s32k312 之 Relocating code in ITCM
在init_table中定义了3个新符号(__RAM_ITCM_START, __ROM_ITCM_START, __ROM_ITCM_END),将元素总数从4更改为5。例如:void __attribute__ ((section(".itcm_code"))) 123_Handler() 就可以使用了。第三步 :将__attribute__ ((section(".itcm_code")))添加到您希望在ITCM中重新定位的函数中。ITCM(指令紧耦合内存)是零等待内存,即CPU访问的时间。
2024-05-29 10:45:40
652
原创 s32k312升级调试心得
在使用s32k312的做升级的时候,相信用过的朋友大都会遇到一个问题,那就是用c40ip擦除和写入数据数据会出现异常,常见的情况是地址0x00400000u-0x00500000u的数据段也就是block0不能直接调用c40ip里面的api函数,基于这种情况,自己做了大量测试也查看了不少资料,最终有了一个满意的答案,今天分享给大家。C40_Ip_MainInterfaceSectorErase函数里面。C40_Ip_MainInterfaceWrite里面。这样更改之后还需要在主函数里面添加。
2024-02-07 10:24:18
889
1
s32k312之#pragma GCC section
2024-05-29
s32k312 之 Relocating code in ITCM
2024-05-29
s32k312之模拟iic功能实现
2024-02-07
s32k312之带bctu的adc功能实现
2024-02-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人