- 博客(5)
- 收藏
- 关注
原创 UBOOT启动
1]:boadr_init_f介绍:https://blog.youkuaiyun.com/qq_34591581/article/details/104101598。@@ 注意,由于上述已经把lr寄存器重定义到uboot新的代码空间中了,所以返回之后,就已经跳到了新的代码空间了!@@ 计算返回地址在新的uboot空间中的地址。:是uboot工程的链接脚本文件,对于工程的编译和链接有非常重要的作用,决定了uboot的组装,并且。@@ 把uboot的新的地址空间放到r0寄存器中,作为relocate_code的参数。
2025-03-11 11:40:12
1050
原创 GCC静态库链接顺序的深坑
总结:链接器在处理库时是从左到右的,所以当它遇到一个库时,只会解析已经遇到的未解析符号。如果某个库依赖另一个库中的符号,那个被依赖的库必须在依赖库之后列出。接下来遇到cfe.a,此时链接器可以解析之前sch.a中未解析的 cfe.a 函数,从而解决所有符号的依赖,链接成功。链接器首先遇到 sch.a,其中包含了对 cfe.a中函数的调用,但这些符号尚未解析,链接器将它们标记为待解析。如果写成上面这种顺序会导致报错,无法找到相应的模块。
2025-03-05 14:53:59
145
原创 (*(void (*)())0)()理解
(void (*)() 0) 表示将0强转换为 “返回值为void 传递参数为空的函数指针” 类型的指针变量。() 最前面*表示解指针,红色括号里为指针变量,该函数代表跳转到0地址中执行该地址中内容。void (*)() 是一个返回值为void 传递参数为空的函数指针。上图中最终结果输出 xxxxxxxxxxx。与int 一样是一个类型。
2025-01-14 17:07:33
171
原创 大小端理解
大小端问题浪费了太多应用、驱动、逻辑工程师太多的时间,无时无刻都有人正在被大小端坑,正好比此时的我在浪费时间谈论大小端。如果学过计算机原理、编程等知识,都知道课本里对大小端的一段描述:小端模式:数据的高字节,存放在高地址中。计算机读取数据的方向,是从高地址开始读取的;大端模式:数据的高字节,存放在低地址中。计算机读取数据的方向,是从低地址开始读取的;注意这里只提到了字节序,并未提及到位序问题。常见大小端CPU如下:大端cpu:PowerPC。
2025-01-12 00:48:18
625
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人