原作者:Eli Bendersky http://eli.thegreenplace.net/2011/11/11/position-independent-code-pic-in-shared-libraries-on-x64 之前的文章.以为x86架构编译的代码为样例,解释了位置无关代码(PIC)怎样工作.我承诺在还有一篇文章里涉及x64[1]上的PIC,如今就是了.本文将不会太进入细节,由于假定读者已经理解了理论上PIC怎样工作. 总之.对于这两个平台想法是相似的,但由于每一个架构独有的特…
b MAIN 和 ldr pc,=MAIN 的区别(谈到代码位置无关性) 看bootloader的时候经常看到这两种写法,不太明白区别,网上查了查.其实看了之后还是一头雾水? 其中,2和3 似乎是一个东西,但结果是相反的.晕. //=============================================== 有几种说法: 第一种,说寻址范围不同.(http://bulo.mcuol.com/GaoKefang/view.htm?topicID=126)LDR指令可以全地址范围内…
在之前的话 新年过去了,那么久没有好好学习,感觉好颓废,现在就uboot的一些基础问题做一些笔记,顺便分享给大家,不过由于见识有限,如果有不足之处请多多指教. 位置无关?什么意思?我们先了解一些基础知识..... 我们都知道我们写的代码最后是运行在内存(SDRAM或者SRAM,通常是SDRAM)中的,但是在运行之前他们是保存在诸如nand.flash等非易失存储设备中的,而这些存储设备的地址要映射到CPU能够寻找的地址上(一般映射在0X0地址上,这个后面详细解释),这样才能得到要运行的代码.而代…
[update 2017.2.11] 最新版本的TFS 2017已经增加了代码搜索功能,可以参考这个链接 https://blogs.msdn.microsoft.com/visualstudioalm/2016/11/16/announcing-code-search-on-team-foundation-server-2017 -- 很多用户在使用TFS的过程中,都抱怨一个问题,不能在TFS的代码库中查找文件!虽然TFS的所有数据都存储在数据库中(SQL Server),但是由于代码文件存储…
1.在Eclipse中配置Javah,配置如下 位置是你javah.exe在你电脑磁盘上的路径 位置:C:\Program Files\Java\jdk1.8.0_112\bin\javah.exe 工作目录:${project_loc}/src 自变量:-classpath .;./classes -d  "${project_loc}/jni" -jni ${java_type_name} 2.创建一个java文件 1 package experience5; 2 3 public…
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1…
select decode(fb.tupr,null,'仅航路',decode(fc.aw,null,'仅终端区','航路及终端区')) 范围,pt 五字代码点,fb.tupr 终端区图及程序,fc.aw 航路 from ( select  distinct wz pt from ( select wz,tupr,0 from (select f2.code_fix_point wz,min(f1.tu) tupr from ( select sid_id id, substr(upper(de…
在一个开发团队较多的研发中心,当开发人员的代码数据积累到一定程度,TFS系统的磁盘空间的使用率会逐渐成为系统管理员关注的问题.你可能会关注代码库中每个团队项目,甚至每个目录占用的的磁盘空间.不幸的,即使是当前最新的TFS 2017.1版本,也没有这个对应的功能.但是通过google,你可以找到 TFS Administrators Toolkit 这个工具来完成统计代码的功能. TFS Administrators Toolkit 是微软ALM MVP Mattias Sköld 开发的基于Vi…
原文链接:http://www.orlion.ga/781/ 一. 多目标文件的链接 假设有两个文件:stack.c: /* stack.c */ char stack[512]; int top = -1; void push(char c) {         stack[++top] = c; } char pop(void) {         return stack[top--]; } int is_empty(void) {         return top == -1; }…
接触linux时间不长,总是感觉底气不足,很多东西总是感到迷迷糊糊,其实是因为没找拿到linux C的两把钥匙: makefile和动态库.共享库.linux C中几乎所有的程序都是以库的形式给出,如要要部署,必须知道如何修改makefile.最后生成的组件也将以.a或者.so的形式加载到更大的应用程序中.下面的文章是武汉华嵌嵌入式培训中心  李家凯老师的博客,我做了一点修改. Linux下静态库和动态库(共享库)的制作与使用 Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库.…