430单片机总结_第1页
430单片机总结_第2页
430单片机总结_第3页
430单片机总结_第4页
430单片机总结_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 / 42 430 单片机总结 430单片机个人总结 一 时钟部分 1、关于 XT2 图 1 2、关于 XT1 图 2 3、关于 MCLK PUC信号之后, MCLK 来源于 DCO 时钟信号,如果要设置 MCLK2 / 42 来源于 XT1或者 XT2,步骤如下: 1、打开需要的晶体振荡器; 2、清除 OFIFG标志位; 3、延时 50us; 4、测试 OFIFG 标志位。若 OFIFG=0,说明设置成功;若OFIFG=1,设置未成功,重复 23步骤;程序如下 BCSCTL1 &=XT2OFF; / XT2 is on do IFG1 &=OFIFG; / clear OSCFault flag for(i=255;i0;i-); / time for flag to set 3 / 42 while(IFG1 & OFIFG); BCSCTL2 |=SELM_2+DIVM_3; /f(mclk)=f(XT2)/8; 二 IO口部分 430 单片机的 IO 口都是复用的,除了做普通 IO 口用外,还可以作为片内外设用,图 3所示为 msp430g2553 单片机的、管脚说明,可以发现管脚除了作为普通的 IO 之外,还可以作为、 TCLK等用,那么应该如何选择这些管脚的功能呢? 1、 给寄存器 PxSEL 赋值,确定管脚是作为 IO 用,还是作为片内外设用,当 PxSEL=0时,用作 IO,当 PxSEL=1 时,用作片内外设; 2、给寄存器 PxDIR 赋值,确定管脚的输出方向,当 PxDIR=0时,用作输入,当 PxDIR=1时,用作输出; 图 4 / 42 3 图 4 三 中断函数 标准中断函数的格式为 ; #pragam vector=中断向量 _interrupt void ISR 用户程序; 四 低功耗模式 进入低功耗程序模式为: _EINT(); 5 / 42 LPM0; 以上两句程序等价为: _BIS_SR(LPM0_bits + GIE); 那么退出低功耗程序为: LPM0_EXIT; 五 Flash操作 Flash被划分成 main memory 和 information memory,两者没有太大区别,只是两者的容量和物理地址不同。 CPU:中央处理器 (center processing unit),是一台计算机的运算核心和控制核心。它的功能是解释处理指令。主要由运算器、高速缓冲存储器 (cache)、数据总线、控制总线、地址总线组成。它与内部存储器和输入 /输出设备合称为电子计算机三大核心部件。 Flash就是 memory 的一种。 6 / 42 对 flash 进行操作时,其频率需在 257kHz476KHz 之间,同时单片机的供电电压不能低于。 对 flash 的操作有三种:读、写和擦除;默认方式是读。 擦除操作: 对 flash 进行擦除操作时,需要进行一个假写入,假写入的目的是启动 flash 时钟发生器 和启动擦除操作,若果假写入的地址不在需要擦除的段内,该假写入不能启动该段的擦除。 擦除 flash 所需的时间是固定的,并不取决于需要擦擦除的 flash的数量, mass擦除的时间 t= 10593/fFTG , segment 擦除的时间t=4819/fFTG,色 写入 flash步骤: 1、关闭看门狗电路和总中断; 2、设置 FCTL2; 7 / 42 3、设置指针指向需要写入段的首地址; 4、设置 FCTL1、 FCTL3,需要首先设置 FCTL1 控制 flash 为擦除操作; 5、假写入,那么在擦除过程中, CPU 将会停止运行;擦除完成后, CPU 继续执行后面的代码); 怎么理解从 flash 中启动擦除操作? 个人理解:就是通过上位机下载到单片机的程序保存在flash 中,而没有保存到 RAM 中。擦除指令代码也是保存在flash中。 6、擦除操作完成后,设置 FCTL1; 7、写入 flash程序; 8、写入完成后,设置 FCLT1、 FCTL3 c 语言程序如下: 8 / 42 void main uchar *Flash_ptr; / flash pointer uint i,value; /value 为需要写入的数值 ; WDTCTL=WDTPW + WDTHOLD; /关闭看门狗 ; FCTL2=FWKEY + FSSEL0+FN0; /设置 flash timing value=0; Flash_ptr=(uchar *) 0x1080; /设置 flash pointer 为 需 要 写 入 的 flash 段 的 首 地 址 FCTL1=FWKEY+ERASE; /设置 flash 为擦除模式; FCTL3= FWKEY; /打开 flash 操作,默认为读模式,用户 不 能 对 flash 进 行 其 他 操 作 *Flash_ptr=2; /假写入一个数值 9 / 42 FCTL1=FWKEY+WRT; /设置 flash 为写模 式 for(i=0;i *Flash_ptr+=value; FCTL1=FWKEY; /关闭写入模式 FCTL3=FWKEY+LOCK; /关闭 flash,用户不能对flash写 /擦除操作,只能读 如何理解从 flash 启动对 flash 的操作、从 RAM 启动 flash的操作? 回答:对 flash进行的这段代码存放在哪里,就是从哪里启动 flash 的操作,如果该段代码放在 RAM中,那么即是从 RAM启动 flash 的操作;如果这段代码放在 flash 中,即是从flash启动 flash 操作。 10 / 42 如何判断程序是存放在 Flash中还是 RAM 中? 回答: x86架构的 PC机 cpu 在运行时,程序是存储在 RAM 中的, PC机在运行程序的时候将程序从外存调入到 RAM中运行,CPU 从 RAM 中读取程序和数据;而单片机等嵌入式系统则是存放在 flash 中的,单片机程序是固化在 flash 中, CPU 运行时直接从 flash 中读取程序,从 RAM中读取数据。 造成以上差别的原因在于: x86架构的 CPU 是基于冯 .诺依曼体系的,即数据和程序存储在一起的,而且 pc 机的 RAM 资源相当丰富,客观上能够有承受大量的程序数据;单片机的架构大多是哈佛体系的,即程序和数据分开存储,而且单片机的片内 RAM资源是相当有限的,内部的 RAM 过大会带来成本的大幅度提高。 冯 .诺依曼结构和哈佛结构的区 别? 回答:两者的区别在于程序空间和数据空间是否是一体的。冯诺依曼结构是将程序空间和数据空间合在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储的不同物 11 / 42 理地址, 因此程序指令和数据指令的宽度相同。取指令和取操作数都在同一条总线上,通过分时复用的方式进行的,缺点是在高速运行时,不能达到同时取指令和取操作数,从而形成了传输过程的瓶颈。常见的微控制器和中央处理器有:Intel公司的 x86 微处理器、 Intel 公司的其他中央处理器、安谋公司的 ARM7、 MIPS 公司的 mips 处理器。 哈佛体系的内部程序空间和数据空间是分开的,这样就可以同时去指令和操作数,从而大大提 高了运算能力。常见的微控制器和中央处理器有: microchip 公司的 PIC 系列芯片、摩托罗拉的 MC68 系列、 zilog 公司的 Z8 系列。 Atmel 公司的 AVR系列、安谋公司的 ARM9、 ARM10 和 ARM11、 51 单片机。 在通用计算机系统中,应用软件的多样性是的计算机要不断地变化所执行的代码的内容,并且频繁地对数据域代码占有的存储器进行重新分配,这种请款下,冯诺依曼结构占有绝对优势,因为同一编址可 以最大限度地利用资源,而哈佛结构的计算机应用在这种请款下会对存储器资源产生理论上最大可达 50%的浪费;但是再嵌入式应用中,系统要执行的任务相对单一,程序一般是固化在硬件里。当然这时使用冯诺依曼结构液可以,代码区和数据区在编译时一次性分配好了而已,但是其灵活性得不到体现,所以现在大量单片机还12 / 42 是使用的哈佛结构。 为什么说哈佛结构在嵌入式计算机中占有优势呢? 回答:嵌入式计算机在工作时与通用计算机有着一些区别:嵌入式计算机在工作期间的绝大部分时间是无人值守的,而通用计算机工作期间一般是有人操作的;嵌入式计算机的故障可能会导致灾难性的后果,而通用计算机一般就是死死机,重新启动集合,这两点决定了对嵌入式计算机的一个基本要求:可靠性。 使用冯诺依曼机构的计算机,程序空间不封闭,其程序空 间的数据在运行期理论上可以被修改,此外程序一旦跑飞也有可能运行到数据区。虽然都是一些不常见的特殊情况,但是看看哈佛机构的计算机在这些情况下是怎样的:程序只能在密闭的代码区中运行,不可能跑飞到数据区。 总结 冯诺依曼原理:程序只是一种特殊的数据,它可以像数据一样被处理,因此可以和数据一 起存储在同一个存储器中,数据总线和地址总线复用。 13 / 42 哈佛结构是一种并行结构,程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问,与两个存储器对应的是系统的 4条总线:程序的数据总线和地址总线、数据的数据总线和地址总线 六 UART通信 UART 通信又称串行异步通信,串行同步 /异步收发器通过RXD/TXD 管脚将 430 单片机和外部系统相连。如果 RXD/TXD管脚没有接受 /发送数据,则 RXD/TXD 管脚一致保持高电平状态。 UART 的数据帧结构为: 1 位停止位、 8 位数据位、 1 位奇偶校验位、 1 位停止位,在实际数据发送过程中,串口是以字符为基本单位来发送的。 收发步骤 (UART初始化设置 ): 1、设置 IO口为 RXD、 TXD; 2、设置 SWRST=1信号后, SWRST自动设置 =1,因此可以不用14 / 42 设置 SWRST); 3、设置相关寄存器; 4、清除 SWRST,这样 USART模块才能工作; 5、打开接收、发送中断; 430单片机 目录 1. 特点 2. 时钟 3. 低功耗模块 4. 看门狗定时器 5. 16位定时器 15 / 42 6. FLASH储存 7. 比较器 8. DMA 控制器 9. USART串行通信 10. ADC 与 DAC转换 11. I/O端口 12. 乘法器 正文 1 特点:低功耗 LPM。中断可以唤醒所有引脚 Psel pdir 决定 P 的输入输出,片内片外 复位,中断 POR PUC。 16 / 42 Pxdir=1输出, 0输入 sel 2 把模拟电路数字电路和微处理器集成在一个芯片上,可以进行混合信号处理 16位单片机,使用精简指令集,有丰富的外围模块,便于开发,含有 P1-P6I/O 引脚,这些引脚与外部设备进行数据交换。通过寄存器来设置与观察各个模块的状态与输入输出。支持中断与嵌套。 2. 时钟 运算和外部事件的响应。 通过晶体振荡器, RC振荡器或谐振器获得。 辅助时钟,主系统时钟,子系统时钟。 3.低功耗模块 MSP430 有 1种活动模式和 5种低功耗模式,低功耗模式可由软件软件设置控制位选择,低功耗模式可由中断返回活动模17 / 42 式。 4.看门狗定时器 一次 WTD 定时时间到,产生一次器件复位。 一般 WTD 定时时间大于程序执行时间,如果由于干扰时程序跑飞,则不会在 WTD 到达前对 WTD 清零, WTD 溢出,重新启用程序,恢复正常。 WTD也可作内部定时器使用。 5.定时器 A 由 16位定时器和多路 /捕获通道组成。每个通道以定时功能为核心单独控制。 利用 A生成的 PWM 改变周期与占空比,实施 DAC。 输入时钟源有多种选择,而且又可以分频。 比较捕获功能可以提高 I/O处理事务的能力,捕获时间发生18 / 42 的时间或产生间隔。满足捕获条件时,把 TAR的值写入捕获寄存器。 TAR 与比较器值相等时,设置标志位,主要用于产生定时。 4 种模式:停止 /增计数 /连续技术 /增减技术。 8 种输出模式。 6. FLASH储存 电可擦除的可编程储存器。 主要储存程序代码,表格,用户信息。多次擦除和写入数据。 信息储存器有 2个 128字节的段,主储存器有多个 512字节的段。段又可以分为块 可以字,位,字节编程。也可以通过 JTAG(用于芯片内测试的一种协议 ),BSL(启动加载程序,通过串行口访问 CPU),ISP接口等编程。 60KB空间编程 写入数据之前必须以段为单位擦除。 19 / 42 编程或擦除期间不能进行读写工作。 7比较器 为精确比较测量而设计的,可实现 ADC操作,供电电压管理,外部模拟信号的监管。 输出作为 TIMEA 的捕获输入。 RC滤波器作为输出且有中断能力。 主要由 2 个模拟量输入端,参考电压发生器和输出滤波器等构成。 8 DMA 控制器 3 个独立的传送通道。 不需要 CPU干预即可提供先进的可配置的数据传输能力。可以在内存,外部及外部硬件之间进行精确的传输控制。 可在整个地址空间内传输数据,实现高速传输。 20 / 42 字节与字可混合传送。 9 USART 异步串行通信 允许 7 或 8位串行位输入输出。 串口是系统与外界联系的手段。 串行通信功能通过 USART硬件直接实现与通过定时器软件实现。 USART 包括 UART 异步串行通信, SPI 同步串行通信, I2C 同步串行通信。 异步通信模式:线路空闲 /.地址位通信协议 10. ADC 与 DAC转换 ADC: 内置温度传感器。 21 / 42 模拟量转化为数字量。 包括参考电压发生器,模拟多路通道,具有采样保持功能的12位转换内核,转换结果储存至转换储存器。 DAC: 输出引脚与输入引脚复用。 数字量转化为模拟量,以便操作被控制对象的工作过程。 430有两个 DAC通道 P6, P7. 最大输出电压为参考电压的 1 或 3 倍。 11. I/O端口 6 组端口,每组 8 位并可独立编程,输入输出或为扩展提供逻辑控制信号,但只有 P1P2 有中断能力,含 7 个寄存器,P3-P7各含 4个寄存器,提高灵活性。 可以按字节输出,也可以按位输出。 22 / 42 13. 乘法器 不改变 CPU结构的条件下增加功能。 通过内部总线与 CPU 相连的 16 位外围模块,能提高数据处理能力,支持 8位, 16位,有 /无符号乘加法。 一个单片机里只有一个乘法器,每次用完后进行下次计算。 P3out &= bit5 置 0 P3out |= bit5 置 1 改变 CCS 字体方法: perferanceGeneralApperanceColors and Fonts BasicText Font 将 c 语言编译成汇编语言之后执行。如果 c语言结构不好,则编译后 会出现编译成汇编后代码冗余, 使得执行效率不高。 23 / 42 板子有可能与电脑连接出问题,可以拔下重插一次。 在单片机内部 flash 存储空间有剩余时,可以用于数据存储空间, 并且可以使用单片机程序进行数据管理。 POR PUC是复位信号 看门狗定时器溢出发生复位 复位时设置如下: 堆栈的指针指到最顶端 2.初始化看门狗 3.初始化外设 GIE是总中断 具有欠压复位功能 24 / 42 工作电流小于 20UA 待机电流小于 4 个特殊功能寄存器 R0是 PC指针 R1是堆栈指针 R2是状态 寄存器 R3是常数发生器 12个通用寄存器 R4-R15 27条内核指令 24条仿真指令 7 中地址模式 25 / 42 无累加器 三个时钟: ACLK辅助时钟:频率较低,低速外设 MCLK是主时钟, CPU运行的时钟,高频 SMCLK是次主时钟,高速外设 DCO 是数字震荡控制器 1M 8M 12M 16M 共 4 个级别,可以通过 内置数据进行设置 内置 VLO 低频振荡器,频率为 4-20khz。所以可以通过 DCO进行分频 Timer_A 频率可达系统振荡频率,用于定时器时,最小单位时间 是 20ns 2553的电阻有 015 共 16中。用 RSEL 选择。 RSEL与 DCO配合 ,值越大 频率越大。 26 / 42 LF是外接时钟 USART支持 UART、 SPI 共 2种通讯方式 USCI支持 UART、 I2C、 SPI 共 3种通讯方式 关于变量: static 变量是对于局部变量而言,如果不定义成静态变量,则 每次执行时都会被重新初始化, 静态变量则不重新初始化。 全局变量和静态变量是存储在 RAM 中的。 extern 是外部变量,即将一个文件中的变量在另一个文件中 使用。如在文件 1 中声明了变量 z,在文件 2中声 明 extern int z 就可以使用文件 1 的 z 27 / 42 I/O 口赋值方法与 C51 中的相同,可以使用 OXxx 或 OXxxxx赋值。 对 P 管脚整体赋值是对寄存器的赋值操作 BIT0, BIT1, BIT2, BIT3分别表示二进制的第一位,二位, 三位为 1,四位为 1.表示 0x01, 0x02, ,0x04,0x08. P1OUT|=BIT1,是除了第一位的寄存器值被改变,其他位的值 都不变,这样可以防止对其他位做了误操作。 x0001,即前 15位都不改变状态 只有最后一位翻转,可以用于位翻转操作。 必须先对需要的未进行输入输出设置,之后才能进行读写操作。 模数转换器具有 14路输入。 定时器与比较器配合, 可以得到某个时间函数,如果知道了某 物理量随时间的变化规律,就可以进行测量。 28 / 42 利用定时器和 RAM 等存储数据的模块或数组,可以实现任意PWM波的 产生,再利用电容的充放电作用可以模拟出任何的周期性波形,方 法如下:定时器赋初值,启动定时器,计数停止后进入中断,在中 断中将下一个要计的时间加在初值上 ,继续计数。如此循环。每次 进入中断时都翻转一下输出电平。定下某个循环的次数作为一个大 周期。 P 口要选择作为 I/O 口还是作为寄存器,选定后还要在方向寄存器中 确定是输入还是输出。 PXDIR 为 0 时,要使用 PxREN 进行上拉下拉操作,上拉则默认输入是高 电平,下拉则默认是低电平。如 P1REN|=BIT0; 不操作时都默认为下拉。可以在 P1REN寄存器里找到各位状态。 上电后 P1DIR全部为 0,即输入状态。 P1OUT 的 71都是 1,是 0. P1IN 的 为高,其他为低。 在使用时应该先分清自己是要输入还是要输出,然后可以根29 / 42 据需要 使用 P1REN 调整初始状态。 I/O 口作为输出时,如果输出寄存器 P1OUT 是高,则对输入寄存器 PIN 有影响,会直接将 P1IN 寄存器变为高电平,这就是那位学长说的要 注意的问题,要尽量避免,如在进行初始化时 P1OUT =0X00;不应该 利用这一现象,这不正宗。 I/0口的中断注意事项: 1.寄存器名称根据芯片的寄存器名称设置, 2553是 IE1, IE2,不是 P1IE,P2IE (要以调试时的寄存器为准,不要看头文件中的。 ) 为 1 是开中断,不要搞反了 3.将需要的端口的 PxREN 置 1,即接上拉电阻。 4.标志位要软件清零 5.逻辑判 断时要加括号,否则不能执行 6.不必局限于头文件中宏定义的 OFIE,OFIFG 等, P1, P2 的30 / 42 所有管脚 都可以独立中断。可以独立设置。 只要置 1,那么中断就自动禁止,不管 PxIE 是什么 不同的编译软件的寄存器名称不一样,设置时需要根据实际的进行 设置,否则寄存器无效。! 定时器是 CCR0, CCR1,CCR2, CCR0 的优先级最高,并且返回时不要 软件清除中断标志位,是自动复位的。其他定时器必须软件清除中断标志位。 CCR0, CCR1 都是 计数值,相当于 51的 TH0, TL1. 关于定时器的连续工作模式和增计数模式? 数据段的数据个数一般要超过 256个才能通过 8路 AD转换。 MCLK的频率等于机器频率,每一个周期都能够完成一个基本操作。 一个指令周期等于 1-6个机器周期,根据指令而定。可以参照 MSP430 时钟设置及其总结一文。 31 / 42 ACLK用于低速外设 MCLK用于 CPU SMCLK用于高速外设 注意对寄存器进行位设置时的语法,可以是 x|=a+b+c. x 表示寄存器名称, a,b,c 表示寄存器的位名。 多机 USART通信时,数据格式为 :起始位 地址 停止位 起始位 数据 Msp430 单片机学习总结: 1、 时钟系统配置: 430 单片机正常有 3 个时钟模块,即 MCLK、 SMCLK、 ACLK,在我们正常使用时,应该设置为: A: ACLK来源于 LFXT1CLK的低频模式 32 / 42 自己最近刚开始接触 MSP430,不理解底下这段代码的意思,通过度娘和谷歌也没有找到比较好的解释,现在大致搞明白了,可能是这么个意思,提供参考。 if(CALBC1_1MHZ = 0xFF | CALDCO_1MHZ = 0xFF) while(1); CALBC1_1MHZ 和 CALDCO_1MHZ 是已经定义好的两个宏: SFR_8BIT(CALDCO_1MHZ); SFR_8BIT(CALBC1_1MHZ); Flash 擦除后的所有单元比特位都恢复为 1,因此若CALBC1_1MHZ 和 CALDCO_1MHZ 都等于 0xFF,说明是已经定义好的宏被擦除了。当出现这种情况时就将程序停止于此。 33 / 42 以上是网友的理解,下面摘自 TI论坛的技术支持的解释: ? if (CALBC1_1MHZ =0xFF | CALDCO_1MHZ = 0xFF) while(1); / If calibration constants erased / do not load, trap CPU! BCSCTL1 = CALBC1_1MHZ; / Set DCO to 1MHz 0x10FF 0x10FE DCOCTL = CALDCO_1MHZ; 在 MSP430 的 information A Flash 段中一般会有一些比如DCO 校正信息,温度传感器校正等等的数据存 在,这些是出厂设置好的!但是有时候用户会不小心把 infoA擦除掉,而擦除后的内容就为 0xFF了。 背景知识介绍完了,上面程序段的作用是,判断 CALBC1_1MHZ34 / 42 的地址内容是否被擦除了,如果擦除了,那么 while(1)。如果没有,那么将校正信息添入相应的寄存器,可以得到精度相对高的 DCO输出频率。 为了让内部 DCO能够更加准确,在出厂前,会对 DCO 进行校正,其校正的参数就放在 segmentA 中, C编程的时候已经通过头文件定义宏 CALBC1_xMHZ, CALDCO_xMHZ 来表明校正的参数值,这句话说的是如果发现 segmentA 对应的位置有校正参数,则继续运行将其赋值给 BCSCTL1,若其里面的值没有程序就不会执行了,因为系统时钟这个时候是说不准的,除非使用外部时钟源 MSP430 单片机常见加密总结 微控技术论坛原创 作者 :richardxwb 1、为什么要加密,如何加密? 当您的产品推向市场的时候,您的竞争对手就开始盯上它了,如果您的产品硬件很容易被模仿,而且您使用的 MSP430单片机没有被加密的话,那么您辛辛苦苦的劳动成功就很容易成为您竞争对手的产品了,使用 JTAG 调试工具 FET 虽然35 / 42 可以将程序下载到芯片内部,但只有使用专业编程器能够防止程序被窃取。 2、 JTAG、 BSL、 BOOTLOADER、熔丝的区别和关系是什么? JTAG接口能够访问 MSP430单片机内部所有资源,通过 JTAG可以对芯 片进行程序下载、代码调试、内存修改等等,通过JTAG 还能烧断加密熔丝,熔丝一旦被烧断, JTAG 接口绝大部分功能失效,就再也不能通过它进行编程了。 BSL接口是利用芯片内部驻留的 bootloader程序实现的自编程,通过特定的时序使得 CPU 进入 bootloader 代码断,然后利用每个 MSP430 芯 片内部都有的 Timer A 构成一个软件串口来与上位机通讯,这样可以将代码下载到芯片内部。实现 BSL 除了 JTAG 接口的一些引脚外,还需要用到两个 TA0功能引脚,因此在设计产品时如果需要加密,则应该考虑将这两个引脚也连出来。 注意: A 、要烧断熔丝必须使用 JTAG接口; B、烧断熔丝后只能通过 BSL或 者用户代码来实现编程更新。 3、 BSL 的验证密码是怎么回事? 36 / 42 BSL 也能读出芯片 内部的代码,这样可以实现编程后的校验等功能。通过 BSL 擦除所有 Flash 信息时不需要验证密码,但是要进一步操作,就得输入 32字节密码进行验证。 BSL 的协议规定这 32字节密码为芯片 FLASH 区域的最高 32 字节,也就是程序的 16 个中断向量,如果您拥有这段程序的最后32字节,就能通过 BSL将芯片内部所有代码读取出来。 4、为什么要使用高级加密? 32字节的密码看似几乎完全没可能使用穷举法来实现破解,但是各位别忘了, msp430 的 16 个中断向量未必每一个都用到了,没用到的中断向量为 0xffff,如果您的程序只用到了复位向量,那么破解者只需尝试最多 32768次就能将其破解,另外,如果芯片本身 Flash 容量较小,比如 4K 字节,那么破解者只需尝试最多 2K 次就能将其破解。这对自动操作的计算机来说几乎是 一瞬间的事情。那么如果用到的中断向量越多,就越难破解,最好的办法就是将所有未用到的中断向量全部填充为随机数据,这就是 “ 高级加密 ” 。 5、关于 TI TXT文件 37 / 42 TI TXT 文件是 TI 公司为 MSP430 单片机定义的一种编程代码格式,其内容为纯文本格式,使用任何文本编辑器都能对其进行阅读,下面是一个这类文件的例子: FEFE B2 40 80 5A 20 01 F2 40 9D 00 90 00 F2 40 2E 00 40 00 F2 D0 80 00 01 00 F2 43 33 00 C2 43 95 00 C2 43 9A 00 F2 D0 20 00 53 00 F2 40 1F 00 52 00 F2 43 91 00 F2 43 92 00 F2 43 93 00 F2 43 94 00 F2 43 95 00 F2 43 96 00 F2 43 97 00 F2 43 98 00 F2 43 99 00 F2 43 9A 00 32 D0 D0 00 FD 3F 31 40 00 03 B0 12 A2 FF 0C 93 18 24 3C 40 00 02 0E 43 30 12 00 00 B0 12 C4 FF 3C 40 00 02 3E 40 FE FE 38 / 42 30 12 00 00 B0 12 A6 FF 21 52 3C 40 00 02 3E 40 FE FE 30 12 00 00 B0 12 A6 FF B0 12 FE FE 30 40 A0 FF FF 3F 1C 43 30 41 0A 12 1D 41 04 00 0F 4C 0A 4D 1D 83 0A 93 05 24 EF 4E 00 00 1F 53 1E 53 F7 3F 3A 41 30 41 0A 12 1D 41 04 00 0F 4C 0A 4D 1D 83 0A 93 04 24 CF 4E 00 00 1F 53 F8 3F 3A 41 30 41 FF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论