动态库 地址无关代码PIC [问题点数:40分]

Bbs2
本版专家分:209
结帖率 98.53%
Bbs10
本版专家分:139256
版主
Blank
进士 2018年总版新获得的技术专家分排名前十
2017年 总版技术专家分年内排行榜第六
Blank
金牌 2018年1月 总版技术专家分月排行榜第一
2016年12月 总版技术专家分月排行榜第一
2016年11月 总版技术专家分月排行榜第一
2016年10月 总版技术专家分月排行榜第一
Blank
优秀版主 2016年10月优秀大版主
2016年8月优秀大版主
Blank
银牌 2018年5月 总版技术专家分月排行榜第二
2017年12月 总版技术专家分月排行榜第二
2016年9月 总版技术专家分月排行榜第二
Bbs2
本版专家分:209
Bbs12
本版专家分:378790
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
Bbs12
本版专家分:378790
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
Bbs2
本版专家分:209
Bbs2
本版专家分:209
Bbs2
本版专家分:209
Bbs12
本版专家分:378790
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
Bbs10
本版专家分:139256
版主
Blank
进士 2018年总版新获得的技术专家分排名前十
2017年 总版技术专家分年内排行榜第六
Blank
金牌 2018年1月 总版技术专家分月排行榜第一
2016年12月 总版技术专家分月排行榜第一
2016年11月 总版技术专家分月排行榜第一
2016年10月 总版技术专家分月排行榜第一
Blank
优秀版主 2016年10月优秀大版主
2016年8月优秀大版主
Blank
银牌 2018年5月 总版技术专家分月排行榜第二
2017年12月 总版技术专家分月排行榜第二
2016年9月 总版技术专家分月排行榜第二
Bbs7
本版专家分:17656
Blank
红花 2006年4月 扩充话题大版内专家分月排行榜第一
Bbs2
本版专家分:209
Bbs2
本版专家分:209
ARM启动位置、位置无关
S3C2440上电后,硬件自动从NAND FLASH中(NAND 启动)读取前4K字节内容到内部SRAM,并从<em>地址</em>0开始取指令执行,不管这4K的链接<em>地址</em>(运行时<em>代码</em>应该位于的<em>地址</em>)在什么地方,哪怕在0X3000000,CPU也是从SRAM中的0<em>地址</em>开始执行,但是不能读写全局变量或者静态变量,也不能使用位置相关指令跳转。访问全局变量或者静态变量都是链接<em>地址</em>,而位置相关跳转指令如LDR PC这一类的,
位置无关码的理解和使用
1.rn位置<em>无关</em>码:CPU取指时用相对<em>地址</em>取指令(比如pc +4),只要其相对<em>地址</em>没有变,都能够取指并运行。rn位置相关码:利用绝对<em>地址</em>取指并运行,这就需要你存放程序(链接过程中)需要按照连接脚本的要求那样执行(Makefile里面有 -Ttext xxx指定或连接脚本)。rnrnrn2.rn对于ARM启动流程,一般先将BL1下载到ROM的0<em>地址</em>去运行,再将整个bootloder复制到DDR中去运
PIC单片机入门_PICC的指向RAM的指针
问题:rnrnrn将30h,31h,32h单元中最大的数放入40h。rnrn利用指向RAM的指针进行编程如下:rnrnrnrn#include nstatic volatile unsigned char add1 @0x30;nstatic volatile unsigned char add2 @0x31;nstatic volatile unsigned char add3 @0x32;ns
S3C2440链接脚本与位置无关码分析
串口裸机程序中有如下链接脚本nSECTIONS {n . = 0x30000000;n .text : { *(.text) }n .rodata ALIGN(4) : {*(.rodata)} n .data ALIGN(4) : { *(.data) }n .bss ALIGN(4) : { *(.bss) *(COMMON) }n}
bootloader与linux中位置无关代码(PIC)的分析理解
bootloader与linux中位置<em>无关</em><em>代码</em>(PIC)的分析理解 分为u-boot 和vivi两个部分
韦东山嵌入式Linux学习笔记之——代码重定位004_代码重定位与位置无关
将程序(包含可运行的<em>代码</em>和数据)从一个位置(flash)移动至另外一个位置运行或进行数据的读写成为<em>代码</em>重定位。<em>代码</em>重定位的根本原因是改善某个存储介质的某些缺陷(例如存取速度,读写限制等等)。在实际中我们可以只重定位程序的某一段(如数据data段或者<em>代码</em>text段),或者将整个程序进行重定位。现在考虑将整个程序重定位至SDRAM所需要的技术细节:① 从flash中将程序复制到(重定位)SDRAM,要...
解决 openssl 在Linux 下默认不生成动态库的问题
在Linux下利用源码安装 OpenSSL 通常默认不会生成<em>动态库</em>,解决办法:n在config 加上 shared 选项 具体指令n./config sharednnconfigure 制定生成静态库办法:n --enable-shared=no --enable-static=yes (静态)n --enable-shared=yes --enable-static=no (动态)nnn...
PIC32单片机harmony开发环境 - uart例程和代码分析
源<em>代码</em>下载:http://download.csdn.net/detail/zn2857/9712707n源<em>代码</em>分析:
PIC单片机调试总结
使用编程环境 :MPLAB X IDE V3.40n单片机 :p33FJ64GS606n仿真器 :<em>pic</em>kit3nn问题       :断点无法解析为有效的程序存储器<em>地址</em>,及仿真无法n                  设置断点,看不了watch窗口变量。nn解决方法:文件不能有中文路径。...
代码重定位
      学习下重定位,做下总结吧。nn      首先,我们的<em>代码</em>经过预处理,编译(.s),汇编,链接后生成可执行的bin文件,通过反汇编就可以查看bin文件组成,依次为.text(<em>代码</em>段),.rodata(只读数据段),.data(数据段),.bss(未初始化数据)..common(注释)。nn      下面实验,bin文件download到norfalsh中,从norflash启动。nn...
PIC(与位置无关代码)在u-boot上的实现
1.1 原理介绍u-boot通常都是存在ROM或者Flash上,以保证CPU启动后可以直接运行u-boot。但ROM的问题是只能读不能写,不利于程序的执行。如:全局变量读写,<em>地址</em>空间限制等问题。因此u-boot会先把自己拷贝到RAM中去执行。这一拷贝带来的问题是执行<em>地址</em>的混乱。<em>代码</em>的执行<em>地址</em>通常都是在编译时有链接<em>地址</em>指定的,如何保证拷贝前后都可以执行呢?一个办法是使用拷贝到RAM后的<em>地址</em>作为编译时
ARM位置无关代码设计规范
ARM位置<em>无关</em><em>代码</em>设计规范,讲述了arm<em>代码</em>编写时对<em>地址</em><em>无关</em>的描述.
ASLR和PIE的区别
总结:ASLR 不负责<em>代码</em>段以及数据段的随机化工作,这项工作由 PIE 负责。但是只有在开启 ASLR 之后,PIE 才会生效。
uboot入门学习二 位置无关代码以及地址
test_got(void)nfff87260: stwu r1, -16(r1)nfff87264: mflr r0nfff87268: bcl- 20, 4*cr7+so, fff8726cnfff8726c: stw r30, 8(r1)nfff87270: mflr r30nfff87274: addis r30, r30, 3nfff87278:...
链接器与加载起器
程序运行之前的准备工作,静态库 <em>动态库</em> 重定位 位置<em>无关</em>等知识。
PIC单片机之注意事项
MPLAB IDE v8.92  只能支持英文目录,所以一般而言是把相应的工程拷到D盘中,然后打开编译,最后如果想要保存工程,应该拷回想要保存的位置n当在中文目录中会出现“找不到指定路径”的错误,如下:
linux crash在动态库中,通过map查找crash位置
linux进程crash时,通常我们可以通过gdb+core或addr2line解析出进程crash在哪一个函数中,有时crash在动态链接库中,解析出的core可能只有一个<em>地址</em>,而不能知道是在哪一个函数,这时可以尝试通过/proc/进程ID/maps的方法找到crash的位置。nnn一个<em>动态库</em>的实现:n头文件sample_fun.hn#ifndef _SAMPLE_FUN_H_n#d
PIC单片机内部寄存器信息汇总
配置字(__CONFIG):nn1) 芯片的振荡模式选择。nn2) 片内看门狗的启动。nn3) 上电复位延时定时器PWRT的启用。nn4) 低电压检测复位BOR模块的启用。nn5) <em>代码</em>保护。nn__CONFIG_CP_OFF &amp;amp;_WDT_OFF &amp;amp;_BODEN_OFF &amp;amp;_PWRTE_ON &amp;amp;_XT_OSC &amp;amp;_WRT_OFF &amp;amp;_LVP_OFF ...
c++查看动态库中函数地址
我们知道在生成<em>动态库</em>时,如果使用.def文件.那么可以在.def中定义函数<em>地址</em>即例: add @1这种方式.但毕竟这是一种取巧的方式,如果你想获得任何一个<em>动态库</em>中函数<em>地址</em>,那么我这边可以提供两个方法.(1)使用vs自带的功能我用的是VS2005打开工具选项,下面有Visual Studio 2005 Command Prompt打开是这样在里面输入命令dumpbin -export dll(这只是...
linux动态库位置信息
1) 安装so文件到/usr/lib/ 或/usr/local/lib2)   修改配置文件/etc/ld.so.conf, 添加你的so文件所在的目录       也可以/etc/ld.so.conf.d/目录下增加一个你自己的conf文件, 文件内容里添加一行路径,指向你的so文件目录3)执行ldconfig, 是你的配置马上生效...
【小结】单片机复位程序
今天在网上看到这么一个单片机复位的程序,这个程序据说是一个大三的学生写出来的,不错,写的很有一定的道理,其C编程也达到了一定程度了【小盒子我还是很佩服这个人的】。下面我们来看看这个<em>代码</em>:rnvoid main(void){   unsigned char code rst[]={0xe4,0xc0,0xe0,0xc0,0xe0,0x32};  // 复位<em>代码</em>rn   (*((void (*)())...
PIC单片机入门_框架与存储器
1.PIC16F877A单片机框架rnrnrn1.1 为何性能如此之高?rnPIC单片机之所以有很高的性能是因为其具备如下特性:rnrn内部为哈佛结构、寄存器文档、大多数单指令周期、指令流水线操作、长字型指令、指令数很少、指令实现的功能基本不重复rnrn1.2 什么是哈佛结构?rn冯诺依曼结构可以如下表示:rnrnrn从同一存储器空间取指令和取操作数据,限制了数据流量。rnrnrnrn哈佛结构可以
第7课,代码重定位
注:以下内容学习于韦东山老师arm裸机第一期视频教程一.段的概念和重定位的引入    1.1 重定位的引入        2440框架图如下                    CPU发出的<em>地址</em>可以直接到达SDRAM,SRAM,NOR但是无法直接到达NAND        因此我们的程序可以直接放在NOR,SDRAM直接运行,假设我们把程序烧录到NAND中,CPU无法直接从NAND取<em>地址</em>运行. ...
一些可以使用的网上图片地址
写demo需要联网加载图片的时候用,省的每次都搭服务器。public class ImageUrl { n n public static List imageList(){ n n List mUrls = new ArrayList(); n mUrls.add("http://e.hiphotos.baidu.com/image/<em>pic</em>/item/
指定运行时动态库位置的三种方式
指定运行时<em>动态库</em>位置的三种方式n在Linux 中,<em>动态库</em>的搜索路径除了默认的搜索路径外,还可通过三种方法来指定:方法一:在配置文件/etc/ld.so.conf中指定<em>动态库</em>搜索路径;方法二:通过环境变量LD_LIBRARY_PATH指定<em>动态库</em>搜索路径;方法三:在编译目标<em>代码</em>时指定该程序的<em>动态库</em>搜索路径。 n众所周知,Linux<em>动态库</em>的默认搜索路径是/lib和/usr/lib。<em>动态库</em>被创建后,一般都
C语言:Linux下动态库调用主程序函数
测试发现,在<em>动态库</em>中调用,主程序的函数,会有如下报错:nsymbol lookup error: /usr/lib/***so: undefined symbol: ******nn解决方法:nn编译时,加上参数: -Wl,-Enn博客园上的一遍博客写的很好,学习到很多。nhttp://www.cppblog.com/markqian86/archive/2017/09/27/215269.asp...
C++动态库获取自身路径
经常编写的dll的人员,经常需要为自己的dll增加一个配置文件,以便自己的dll读取。当把这个dll连同配置文件发给客户后,会经常遇到客户加载dll时找不到该文件的情况。 尝试了网上的几种方法,发现本方法最为有效,不会出错。假定自己编写的dll为gg.dll。 HMODULE hMod = GetModuleHandle(_T("gg.dll")); TCHAR szDLLPath[MAX_PAT
PIC单片机SPI数据传输代码
PIC单片机和无线模块通过SPI接口进行数据传输的<em>代码</em>。
PIC单片机驱动LCD断码屏代码生成工具
PIC单片机驱动LCD断码屏<em>代码</em>生成工具PIC 16系列单片机部分型号都带有LCD(断码)驱动模块, n在编写这部分<em>代码</em>的过程中发现对驱动管脚赋值逻辑有很大的重复部分。 n所以写了一个宏函数,自动生成驱动逻辑。
初始化PIC
n 初始化PICn n PIC是programmable interrupt controller,可编程中断控制器。nnnn nnnnPIC的初始化程序:nnnn nnnn nnnn nnnn nnnnICW是 initial control word,初始化控制数据。ICW有四个,分别编号为1~4,共有4个字节的数据。ICW1和ICW4与PIC主板配线方式,中断信号的电气特性等有关。ICW2决...
PIC单片机学习笔记——PIC16F(L)1526/7
一、产品技术参数nn系列名称n PIC16Fn 封装类型n TQFPn 安装类型n 表面贴装n 引脚数目n 64n 装置核芯n PICn 数据总线宽度n 8Bitn 程序存储器大小n 28 kBn 最大频率n 20MHzn 内存大小n 1.536 kBn PWM单元数目n 1n 模数转换器通道n 30n SPI通道数目n 2n ...
C - 与7无关的数
一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数。求所有小于等于N的与7<em>无关</em>的正整数的平方和。nn例如:N = 8,&amp;lt;= 8与7<em>无关</em>的数包括:1 2 3 4 5 6 8,平方和为:155。nnInputnn第1行:一个数T,表示后面用作输入测试的数的数量。(1 &amp;lt;= T &amp;lt;= 1000) n第2 - T + 1行:每行1个数N。(1 ...
PIC单片机-AD转换
编写程序,使用数码管显示ADC测量得到的电压值。电压值由1位整数和1位小数构成。例如若当前AN0通道上的电压为6V,则数码管应显示3.6。rn#include n#include nn#define uint8 unsigned charn#define uint16 unsigned intnn__CONFIG(FOSC_HS &WDTE_OFF &BOREN_OFF &PWRTE_OFF &L
关于Windows下动态链接库的代码地址无关
查了很多资料,网上能参考的真实太少了。rnrn《程序员的自我修养》里面明确了Linux下跨跨模块调用函数或者访问数据,使用GOT实现<em>地址</em><em>无关</em>。rn具体的就是调用某一个函数前,找到GOT中对应项,然后跳转到对应项中保存的目标<em>地址</em>,该目标<em>地址</em>是在动态链接器链接时rn填充的,GOT放在数据段,故能够做到<em>地址</em><em>无关</em>,多个程序共享同一份<em>代码</em>指令。rnrn但是DLL为什么不行呢?rn rn书上看到,在调用导入函数的时候,使用的指令中的目标<em>地址</em>是常量,即是函数在导入<em>地址</em>表中的项,然后间接跳转。rnrn但是我比较笨,看不出来为什么DLL要将目标<em>地址</em>写成常量呢?不能在静态库链接时将符号写入<em>地址</em>表,然后动态链接时改写对应的导入符号的目标<em>地址</em>,这样我调用符号的时候,不是可以直接在导入<em>地址</em>表中找到函数对应的项,然后间接跳转吗?rnrn想不通。。。而且这样的话,岂不是做不到DLL共享?那么windows下DLL岂不是少了 节省内存 这个大优势吗?
Linux下动态库so查找与函数列表
rn查看某个so在Linux(Ubuntu)系统下的路径rnrnrnldconfig -p | grep libc.so.6rnldconfig -p | grep xxx.sornrnrn查看某个 so导出函数列表rnrnrnrnrn# 如果输出符号T,则函数正常导出rn# 如果输出符号U,则函数为定义rnnm -D xxx.sorn# 或rnobjdump -tT xxx.sornrnrn- rn...
求教:地址无关代码是怎样生成的?
谢了先。
动态so库的链接:运行时链接和编译时链接
      在编写Makefile时,如果一个程序需要链接so库,则需要通过两个步骤来完成,分为运行时<em>动态库</em>的链接和编译时<em>动态库</em>的链接,缺一不可。        1、运行时<em>动态库</em>的链接在执行可执行文件时,提示: error while loading shared libraries: libprint.so: cannot open shared object file: No such fi...
三菱pic全系列编程软件
学习的好帮手,机电编程工程师必备,挺不错的
C#调用C++动态库实例程序,地址映射传参,
C#调用C++<em>动态库</em>实例程序,C#程序中使用C++提供的带指针的数组传参以及操作后的值. 文件<em>代码</em>中分C++ 工程和C#工程
PIC单片机mTouch电容触摸传感的软件处理
PIC单片机mTouch电容触摸传感的软件处理. microchip 触摸MCU 优酷视频三部分 一部分:http://v.youku.com/v_show/id_XNjIyMDkyNjMy.html 二部分:http://v.youku.com/v_show/id_XNjI2MDM4Nzk2.html 三部分:http://v.youku.com/v_show/id_XNjI4NTk4MDIw.html 我是Microchip的技术支持,有问题联系我,QQ 33437347
PIC32MX 读写flash调试经验
PIC32MX flash read/write
PIC单片机入门_异步通讯模式详解
1.USART用于异步通讯详解rnrn1.1 USART的异步工作模式rn在异步工作模式下, USART 采用的是标准非归零 ( NRZ编码格式 :一位起始位、8 位或 9 位数据位和一位停止位 )。最常用的数据格式是 8 位。片内专用的 8 位波特率发生器可用于由振荡器产生标准的波特率频率。 USART 首先发送和接收最低有效位。 USART 的发送器和接收器在功能上是独立的, 但采用相同的数据
基于文本无关的说话人识别
详细介绍了PCA和LDA的理论基础,实现过程,还有实现结果。
PIC官方例程
本文档说明了如何使用 PICkit TM 3 Debug Express 作为开发工具在目标板上仿真和调 试固件 本手册内容编排如下: 第 第 1 章 “简介” 创建了 12 节 PICkit 3 Debug Express 课程并描述了开始这些 课程之前必需的准备工作 第 第 2 章 “PIC18FXXXX 单片机架构概述” 概述了 PIC18FXXXX 单片机架构 第 第 3 章 “PICkit 3 Debug Express 课程” 详细描述了这 12 节 PICkit 3 Debug Express 课程 附录 A “原理图” 给出了带有 PIC18F45K20 的 PICkit 3 Debug Express 44 引脚演示板的原理图 ">本文档说明了如何使用 PICkit TM 3 Debug Express 作为开发工具在目标板上仿真和调 试固件 本手册内容编排如下: 第 第 1 章 “简介” 创建了 12 节 PICkit 3 Debug Express 课程并描述了开始这些 课程之前必需的准备工作 第 [更多]
gcc 编译时使用静态地址
新版本gcc模式使用动态<em>地址</em>,这样当进行调试时,运行<em>地址</em>与exe的<em>地址</em>不一样,很难调试。使用-no-<em>pic</em>即可以使用固定<em>地址</em>。[lzzhang@lzzhang-pc ~]$ gcc -no-pie a.c[lzzhang@lzzhang-pc ~]$ objdump -D a.out | grep testname0000000000400582 &amp;lt;testname&amp;gt;:[lzzhang...
地址无关
位置<em>无关</em>码:CPU取指时,总是相对于本条执行指令的相对<em>地址</em>去取指。比如指行一个ADD指令时,PC要取下一指令的<em>地址</em>,就在原来的基础上+4。这就不管你<em>代码</em>放在存储器的任何位置,只要他们的相对<em>地址</em>没有改变,就能正常执行程序。一般上电复位那几条语句就必须是位置<em>无关</em>码指令。rnrnrnrnrn位置相关码:可以这样来说,就是CPU每次取指都从绝对位置去取,而不是上面的相对位置。这个绝对<em>地址</em>就是相对起始<em>地址</em>0
PIC18移植fatfs文件系统
PIC18移植fatfs文件系统rn使用的主芯片是是<em>pic</em>8f67j94;rn使用的存储芯片是W25Q16;rn步骤一rnspi初始化rnvoid Spi_Init(void) rn{rn RPINR12_13bits.SDI2R = 0x01; //SDI2 A5rn RPOR4_5bits.RPO4R = 0x04; //SDO2 A4rn RPOR6_7bits.RPO6R = 0x05; ...
PIC单片机实现x ms/1s钟精确延时
1、编写子程序DelayMS,实现延时x毫秒的功能,x由w寄存器中的值设定。rn;**************DelayMS**************nDelayMS ; 延时x毫秒,x由变量w寄存器设定n movwf L1 ;nLoop1 n movlw
PIC单片机实现NTC热敏电阻温控器(原理图及源代码
用PIC单片机实现对NTC热敏电阻和DS18B20的数据采集与处理,按键扫描与响应,并在LCD断码屏显示,是风机盘管温控器的完整实现(原理图及源<em>代码</em>)
PIC单片机入门_中断系统详解
1.中断的基本概念rnrn当单片机正在执行程序时,出现了某些特殊状况,例如定时时间到、有键盘信号输入等,此时CPU须要暂时停止当前的程序,而转去执行处理这些事件的程序,待执行完这些特定的程序之后,再返回到原先的程序去执行,这就形成了一次“中断”。“中断”加强了单片机处理突发事件的能力,如果没有中断功能,对可能发生的特殊状况的处理就必须采用定时查询,这样就会浪费大量的CPU时间。rnrn因此,中断是
so 动态库崩溃问题定位(addr2line与objdump)
一、需求分析nnso 的崩溃并不像 Java <em>代码</em>那么好定位,我们通常看到的就只是 so 中的一大段崩溃的堆栈信息。那么我们怎么通过这个堆栈信息来定位我们的问题呢?nn nn二、addr2linenn1. 介绍nnAddr2line 工具(它是标准的 GNU Binutils 中的一部分)是一个可以将指令的<em>地址</em>和可执行映像转换成文件名、函数名和源<em>代码</em>行数的工具。n一般适用于 debug 版本或带有...
PIC单片机入门_MPLAB 集成开发环境和 MPASM编译器
1.七大汇编指令rnrn1.1 #INCLUDErn语法:  #include “文件名.*” 或 或无括号 或 引号rn示例:   #INCLUDErnp12f675.incrnrn1.2 #DEFINErn用于定义变量和分配初始值;用户友好的名字被分配给常数,寄存器 ,管脚名等. 使程序易读;rn例:   rn#DEFINE MYCONSTANTrnH’5A’rnrn1.3 _ _CONFIG
PIC单片机的配置字总结
平台为:MPLAB V8.92,这个ID有两个编译选项:DEBUG和RELEASE,那么可以根据系统预定宏来自动根据选择模式,配置配置字。n一、PIC18F系列配置字编写nMUC: PIC18F4550nIDE: MPLAB V8.92n编译器:MCC18 V3.47n配置字讲解帮助手册在编译器如下目录:doc\hlpPIC18ConfigSet.chmn例如:D:\Program F
PIC引脚定义
PIC引脚定义
定义平台无关的数据类型,方便移植 C/C++开发
n 当我们在做跨平台的项目时,很可能会遇到数据类型有变化的情况,假如你的原工程<em>代码</em>中变量采用的都是如int、char等这样的定义会增加<em>代码</em>移植的工作量,而且修改时很容易遗漏出错,如果我们利用typedef对标准的数据类型重新定义别名,则在跨平台移植时我们只需要把有变动的标准数据类型更换即可,这样操作简单、不易出错。nn//n// Created by taxiang&amp;amp;xuezi on...
sigar.jar 获取PC硬件信息
加密要用到相关硬件信息 如果读取所有MAC<em>地址</em>,在下面<em>代码</em>打印MAC<em>地址</em>处for循环既可 需要引用的包sigar.jar 及相关<em>动态库</em> 测试时我加载了sigar自带所有<em>动态库</em>
简单使用的查看dll地址小工具
简单查看<em>动态库</em>的小工具,方便查看函数<em>地址</em>,对于<em>动态库</em>的调用,有很好的参考意义
PIC单片机延时问题
#includern//时间函数的测试  非定时器的使用  软件仿真 调试debug的使用rn//在watch当中可以添加特殊功能寄存器和变量等rn#define uint unsigned int rn#define uchar unsigned charrnvoid delayChar(uchar n);//uchar的取值在0~256之间  否则溢出 rnvoid delayInt(uint
PIC单片机精通_A/D模数转换模块细节补充
1.PIC16F876a结果寄存器rnrnrnADCON1状态寄存器的7bit位定义了输出结果是左对齐还是右对齐,比较迷茫,不懂在说什么,查阅了一下DataSheet,如下:rnrnrn从上面的示意图可以看出,结果寄存器的对齐方式是为了方便我们读取转换后的数据。示意图不是很详细,我们可以看一下AD的结果寄存器。rnrnrnAD的结果寄存器是16位宽的,但是有六位是不用的,所以实际上读取10位数据。
PIC单片机SPI读写程序
PIC单片机进行SPI通信的发送接收程序,源<em>代码</em>
Fishhook替换C函数的原理
FishhookFishhook是FaceBook出品的,可以用来Hook C函数的一个开源库。它的主要接口就一个:struct rebinding {n const char *name; //字符串名称n void *replacement; //替换后的方法n void **replaced; //原始的方法(通常要存储下来,在替换后的方法里调用)n};//两个参数分别是rebindin
PIC单片机在线仿真正常之后重新上电程序没运行
PIC单片机在线仿真正常之后重新上电程序没运行rn 本次纯属学习记录分享:rn          本次使用的是PIC16F886,仿真器为PICkit3,刚开始出现的现象就是在线仿真运行都可以,拔掉仿真器后重新上电就不行,这里需要在断开调试后重新下载程序到单片机里才可以,重新上电就可以,这里有个小问题就是,用ICD3仿真器可以仿真,但断开后重新下载程序一直提示编程器失败,重新用PICkit3就不会
Arm汇编学习笔记(二)——编写编译并执行依赖外部模块的汇编代码以及PIC代码分析
1. 编译依赖外部模块的汇编<em>代码</em>并执行rnrnrn创建test.S汇编文件,并输入如下内容:rn.global mainnn.extern printfnn.textnnmain:n stmfd sp!, {r11, lr}nn ldr r0, =strn bl printfnn ldmfd sp!, {r11, pc}nn.datannstr:n.asciz "Hello asm\n"nn.en
PKU-与7无关的数
题目描述nn一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7, 则称其为与7相关的数.现求所有小于等于n(n&amp;lt;100)的与7<em>无关</em>的正整数的平方和。nn输入描述nnn案例可能有多组。对于每个测试案例输入为一行,正整数n,(n&amp;lt;100)nn输出描述nnn对于每个测试案例输出一行,输出小于等于n的与7<em>无关</em>的正整数的平方和。nn程序<em>代码</em>nnn#include &amp;lt;i...
GCC编译时指定动态库搜索路径
nn概述n解决方案n方案一n方案二nnn补充n查看编译好的<em>动态库</em>或者进程的rpath的方法n参考资料nnnnn概述nngcc中的rpath参数可以用编译时指定<em>动态库</em>的搜索路径,这样运行时就不需要export LD_LIBRARY_PATH了。nnnn解决方案nnnn方案一nn编译时增加参数-Wl,-rpath='.'nn可执行程序运行时会搜索当前工作目录(不是进程所在目录),所以如果在其它目录运行...
Linux查看动态链接库的所有函数以及在动态链接库查找某一个函数的方法
查看动态链接库的所有函数:rn假设要查看的动态链接库为yourLib.so,则如下rnnm yourLib.sorn在动态链接库中查找某一个函数是否存在以及函数入口<em>地址</em>:rn假设动态链接库为yourLib.so,函数名字为yourFunction,则如下:rnnm -D yourLib.so |grep -w yourFunction
与7无关的数(前缀和)
前缀和:nn nn一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数。求所有小于等于N的与7<em>无关</em>的正整数的平方和。nn例如:N = 8,&amp;lt;= 8与7<em>无关</em>的数包括:1 2 3 4 5 6 8,平方和为:155。nnInputnn第1行:一个数T,表示后面用作输入测试的数的数量。(1 &amp;lt;= T &amp;lt;= 1000) n第2 - T + 1行:每...
C#调用C++动态链接库,函数为地址传递
c++编写的动态链接库,函数的参数为结构体<em>地址</em>,将结构体改为C#版本,使用C#调用dll,成功实例。
MPLAB X IDE -1:如何反汇编PIC的二进制代码
步骤:nn1 准备好需要反汇编的<em>代码</em>文件.hex ;nn2 File --&amp;gt; Import--&amp;gt;Hex File ;nn3 按下图填好;nnnn4 点击Finish;nnnn5 选择Production--&amp;gt;Set Configuration Bits后,就会弹出下图;然后在红色圈处就可以选择Program Memorynnnn6 在下图红色圈处选择Code后即出现Disasse...
PIC单片机-七段数码管的使用
一、编写子程序LED_Display,根据入口参数在某一位7段码LED显示一个数字。点亮的LED位的位数在W寄存器中,该位显示的数字在变量wdata中。变量wdata的位置由用户自行设定。调用该子程序后,选中的数码管持续显示所需的数字100微秒,之后将数码管关闭,退出子程序。rn/***********************************************************
开发pic板的图形库
开发<em>pic</em>板的图形库这里的<em>代码</em>适用于<em>pic</em>
PIC单片机之反汇编
前言 n          反汇编 ,一般情况大家用的不多。但在一些行业确实比较常见。比如 破解加密算法,获得加密密钥,或者自己无法写出完全一致的程序又要修改一些地方的时候反汇编就是必不可少的。反汇编是比较枯燥,又有一定挑战性的东西下面我给大家讲解如何 从BIN文件->HEX文件->汇编->C语言的全部过程。n              第一步破解芯片n            这个作为一般是
linux三种方式使用库:静态链接库,动态链接库,动态加载库
原理介绍:nlinux调用库的方式有三种:n1、静态链接库n2、动态链接库n3、动态加载库n动态链接库(共享库)和动态加载库文件没有任何区别,唯一区别是:动态链接库是程序运行一开始就要加载库,动态加载库是程序在运行到函数需要这个函数的实现的时候才加载库。n所以动态加载库就需要一组函数来控制什么时候加载库。这些函数是dlopen() dlerror() dlsym() dlc...
当 git pull 碰到拒绝合并无关历史
原文链接:当 git pull 碰到拒绝合并<em>无关</em>历史nnn问题描述nn很久之前在 github 上建了个仓库,里面只有一个 README.md 文件。 n突然有天,我想把本地的一个项目传上去,然后就碰到了这样一个问题! n当我 添加远程仓库 后准备提交<em>代码</em>时,git 提示我请先使用 git pull 。 n没毛病,老铁,就应该这样! n但当我 git pull origin master 时就出现
平台无关性与语言无关
Java虚拟机有两个<em>无关</em>性,即平台<em>无关</em>性和语言<em>无关</em>性。再此我们要明白一点:Java虚拟机不和包括Java内的任何语言绑定,它只是与“Class文件”这中特定的二进制文件格式有所关联,Class文件包含了Java虚拟机指令集和符号表以及若干其他辅助信息。rnJava在刚刚诞生之初曾经提到过一个非常著名的宣传口号:“一次编写,到处运行”。Java的平台<em>无关</em>性即体现在此处,可以在多个平台上运行。各种不同
深入剖析Linux动态库在内存的装载
这是之前写的一个总结,现在回过头来看还是有一些收获,可以自己写一个<em>动态库</em>来进行测试,本文是以我自己写的<em>动态库</em>来进行测试的,使用工具readelf。nn nn.so文件是elf格式文件中的一种,它遵循elf格式的相关规则,在对so文件进行内存装载时我们先学习一下elf格式中的相关内容(这里只是做基础的介绍,较为详细的内容可以参考《ELF文件格式分析》,也可以查阅网络资料,不过大多数网络资料都是从这里...
PIC16F877A单片机的EEPROM读写
#includen//调用头文件,16F877A单片机n__CONFIG(0xFF32);n//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡n#define L0 RD0 //定义L0为RD0端口 nnnchar buf;nvoid WriteEE(char addr,char data);//EEPROM写函数nchar ReadEE(cha
FOC源码AVR单片机
FOC源码,AVR单片机,可移植到其他任何单片机上,带传感器。
java 加载动态库的方法
1、-Djava.library.path将加载路径指定到自己的lib目录,不灵活nn2、jna 打包so/dll后jar,cp指定jarnnMake your target library available to your Java program. There are several ways to do this:nnThe preferred method is to set thej...
动态库使用的几个注意点
一、“--export-dynamic”参数的使用GCC编译可执行文件时可以使用-Wl,--export-dynamic参数,此时链接器产生可执行文件时会将所有全局符号导出到动态符号表。gcc -Wl,--export-dynamic -o p1 p1.c -L. -l0如果在创建动态链接的可执行文件不加-Wl,--export-dynamic选项,则它所export的动态符号仅仅包括在链接时动态...
PIC单片机入门_C语言编程技术
1.为什么也是C语言?rnrnrn用C 语言来开发单片机系统软件最大的好处是编写<em>代码</em>效率高、软件调试直观、维护升级方便、<em>代码</em>的重复利用率高等,因此C 语言编程在单片机系统设计中越来越广泛的运用。PIC 单片机的软件开发,同样可以用C 语言实现。rnMicrochip 公司没有自行开发PIC单片机的C 语言编译器,但其他公司有开发众多支持PIC 单片机的C 语言编译器,常见的有Hitech、CCS、
Linux指定动态库路径
linux指定<em>动态库</em>路径包括:1.指定编译时<em>动态库</em>路径;2.指定运行时<em>动态库</em>路径。后文提到的<em>动态库</em>路径都是指的是这两种路径。众所周知,Linux<em>动态库</em>的默认搜索路径是/lib和/usr/lib(不管是编译还是运行都会默认搜索这两个路径)。<em>动态库</em>被创建后,一般都复制到这两个目录中。当程序执行时需要某<em>动态库</em>,并且该<em>动态库</em>还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的<em>动态库</em>文件,然后加
通过backtrace_symbols输出信息定位coredump位置
有时我们会在程序中检测:SIGSEGV信号,收到信号后,打印出当前的堆栈信息,进而方便我们定位出错的地方。方法如下:近期在线上环境中出现coredump后,打印如下的堆栈信息:/var/ytt/mod_se/lib/libqsrch.so(_ZN14ImplSrchWorker8OnSignalEi+0x6a) [0x2aabd5e80aca]n03-29 09:36:15 ERROR [102...
PIC 指令周期
一、PIC指令周期计算:rn设工作频率为:F(MHz);rn1个指令周期为 1/(F/4) 秒。rnrnrn二、PIC的指令rn 即汇编指令,不同系列指令数不一样。rn   8位单片机共有三个级别,有相对应的指令集。基本级PIC系列芯片共有指令33条,每条指令是12位字长;中级PIC系列芯片共有指令35条,每条指令是14位字长;高级PIC系列芯片共有指令58条,每条指令是16位字长。其指令向下兼容
PIC单片机精通_串口通信模块C实现
1.串口通讯头/定义文件 usart.hrnrnrnrn#ifndef _SERIAL_H_n#define _SERIAL_H_nn#define BAUD 9600 n#define FOSC 9216000Ln#define NINE 0 /* Use 9bit communication? FALSE=8bit */nn#define DIVIDER ((int)(FOS
PIC单片机实现冒泡排序算法
编写子程序paixu,实现1Byte数的顺序排列。待排序的10个二进制数(自定义数据大小)存放在内存空间内。编写宏定义实现大小比较和换位,入口参数为待比较的两个数据<em>地址</em>。注意排序过程中需要使用间接寻址方式,即利用FSR和INDF两个特殊功能寄存器实现寻址操作。编写子程序,调用宏定义,使用冒泡排序算法实现排序。rnrn1、冒泡排序算法rnrn冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,
PIC 自动波特率程序C语言版
PIC单片机自动波特率程序,C语言版,注释详细
强连通分量及缩点tarjan算法解析
强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Time, DFN[N], Low[N]; DFN[i]表示 遍历到 i 点时是第几次dfs Low[u] 表示 以u点为父节点的 子树 能连接到 [栈中] 最上端的点   int
串口wifi模块 51单片机整个工程源代码.下载
串口wifi模块 51单片机整个工程源代码. 用STC89C51编写。 其中的一些命令已经写成了函数,可以直接调用 详情请到w w w.hlktech.c o m下载文档资料。 减压密码为我司网址 相关下载链接:[url=//download.csdn.net/download/qingfeng12g/2299027?utm_source=bbsseo]//download.csdn.net/download/qingfeng12g/2299027?utm_source=bbsseo[/url]
计算机专业毕业设计目录下载
包括了很多计算机专业的毕业设计课题,大家可以选择其中课题来完成自己的毕设任务 相关下载链接:[url=//download.csdn.net/download/wybswl/2615198?utm_source=bbsseo]//download.csdn.net/download/wybswl/2615198?utm_source=bbsseo[/url]
广告词辅助制作系统(利用汉语的同音同韵的特点,制作出幽默的印象深刻的广告词)下载
广告词辅助制作系统是用于设计富有想象力的广告词的一种辅助工具,在常用词中利用汉语 的同音字(或同韵)来偷换其概念,例如:往事如烟 这个词在网页中换成了“网”事如烟, 借用了原来的词面而产生了新的词义;还有音同而音调不同(1~4声)的词,例如:草地 中的一块牌子上写着脚下留青,它是由手下留情演变而来,它既告诫了人们不要践踏草地, 而又不失其诙谐的风格,容易让人接受;替换最广的是同韵字,即有相同汉语拼音韵母的字, 在生活中这种替换也比较常用,念起来也比较顺口,例如:以韵母ong结尾的字,“空”、 “轰”、“中”等,因此这种替换功能是其它体裁的广告词所不能代替的。  本软件就是 利用这种替换的功能来 相关下载链接:[url=//download.csdn.net/download/bluerider1/2870986?utm_source=bbsseo]//download.csdn.net/download/bluerider1/2870986?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大数据培训地址 学习java地址
我们是很有底线的