首页 > 其他分享 >test1

test1

时间:2024-11-25 14:35:31浏览次数:3  
标签:test1 编程 芯片 ISP 通信协议 IAP JTAG

ISP:InSystem Programing,在系统编程

ICP:InCircuit Programing,在电路编程

IAP:InApplication Programing,在应用编程

JTAG编程:通过JTAG协议进行编程

SWD编程:通过SWD协议进行编程

UART编程:通过UART进行编程
image-20241125141602636
从图上看,ISP和ICP是处于最顶层的技术。描述的是一种编程结构,所用使用到的协议、通信端口等,不同芯片有不同的定义。

    IAP在第二层,是一种编程方式。实现方式是将一段目标芯片可执行的代码通过某种通信协议下载到芯片RAM中并由芯片执行,由该代码实现具体操作以达到编程的目的。这种方式需要芯片支持通过某种通信协议对芯片的RAM进行读写并能控制其CPU。这是在编程结构下的一种编程方式,像AK100Pro、SmartPRO 5000U-Plus等烧录器,都用到了这种编程方式。

    最下面的是硬件通信协议,UART是最早应用在单片机里面的串行通信技术。JTAG和SWD是ARM内核芯片兴起之后,逐渐流行起来的,这三种技术描述的是编程过程中硬件层使用的通信协议,是最底层的一些技术规范。

    用一个表格来对比这几种通信协议的特性:

image-20241125141617015
综合上面的内容,只要UART、JTAG、SWD这些硬件通信协议能保证电气连接的规范性和稳定性,那么ISP、IAP就能对芯片正确地编程。

ISP和IAP最大的不同是:由谁来触发。

ISP有4种触发方式:
1.由外部硬件电路:如VDD保持高电平,给RST连续3个脉冲;
2.检测状态位:如ISPEN,为0时PC指针从0000H开始执行;为1时,通过“引导向量”计算出“ISP代码”的位置。每次复位后都会检测该状态位;
3.中止控制符信号触发芯片复位:中止控制符信号就是指在异步串行口的接收脚上出现长 达一帧长度的低电平,这里一帧的长度与异步串行口的工作模式有关。
4.直接调用ISP:用户程序也可以调用,但是很危险。

4种方式的目的是相同的——进入ISP子程序,比如Philips出厂的ISP子程序在1E00H-1FFFH,只要能引导PC指针指向1E00H就可以了。

而进入ISP代码的目的是:进入BootROM。

IAP的触发比较简单一些,没有外部触发。通过一些指示位(SST为SC0/SC1、SFCF[1,0];Philips为一段IAP子程序,保存在FF00H~FFFFH地址空间中),达到引导到BootROM的目的。

殊途同归,ISP、IAP所进入的BootROM里面驻留的Boot代码,才是最终目标。

最后一种:并行编程模式。不需要BootROM,直接设置芯片的多个引脚来让芯片识别命令(如:擦除、写入、验证等),从P口传地址、数据,就可以写入Flash

用LPC2000的IAP,你自己分配好FLASH空间,指定一个BLOCK用来存放你的数据,然后通过IAP进行写操作。每次开机后,从这个BLOCK读你的数据
[[软件IIC]]

标签:test1,编程,芯片,ISP,通信协议,IAP,JTAG
From: https://www.cnblogs.com/pxk-rl/p/18567457

相关文章

  • TreeMapTest1
    packagecom.shujia.day15;importjava.util.Map;importjava.util.Set;importjava.util.TreeMap;/*"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)*/publicclassTreeMapTest1{publicstaticvoidmain(String[]args)......
  • test1_1
    web签到题题目web签到题分析F12打开html文件:将注释进行Base64解码得到flag。web2题目最简单的SQL注入分析看着应该是SQL注入题。先尝试使用admin和123456登录,发现没有任何回显。看来报错被屏蔽了。显然admin栏如果注入成功则属于字符型注入。尝试......
  • test1_2
    web8题目做到这一题,基本可以写简单的注入工具了分析界面和上一题web7相同,但在查看回显位置的步骤时出现过滤:反正只存在三个可能的回显位置,我们选择逐一尝试找到回显点,但还是被过滤了:猜测是对联合查询unionselect存在过滤……尬住。…………………………2024/4/......
  • test1_1_2
    web5题目分析php代码审计题,看看代码:<?phperror_reporting(0);//出错不报错?><htmllang="zh-CN">//中文语言<head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"/><metaname=......
  • test1_1_1
    web签到题题目web签到题分析F12打开html文件:将注释进行Base64解码得到flag。web2题目最简单的SQL注入分析看着应该是SQL注入题。先尝试使用admin和123456登录,发现没有任何回显。看来报错被屏蔽了。显然admin栏如果注入成功则属于字符型注入。尝试......
  • test111_2
    web3题目更简单的web题分析代码出现include,猜测是文件包含漏洞。通过data://数据流+php命令执行函数查询当前工作目录下的内容,使用hackbar需要先进行url编码:得到flag文件名和首页文件:?url=data://text/plain,%3C%3Fphp%0Asystem('catctf_go_go_go')%3B%......
  • test111_1
    web签到题题目web签到题分析F12打开html文件:将注释进行Base64解码得到flag。web2题目最简单的SQL注入分析看着应该是SQL注入题。先尝试使用admin和123456登录,发现没有任何回显。看来报错被屏蔽了。显然admin栏如果注入成功则属于字符型注入。尝试......
  • pythontest1
    importitertoolsdefpermutations_combinations(n,m,letters):#排列序列permutations=list(itertools.permutations(letters,m))permutation_output=[''.join(permutation)forpermutationinpermutations]#组合序列,按字母升序排列combination......
  • Numerical Results of Test1
     ......
  • test1227
    冒泡排序题意:给定\(a_1,a_2,...,a_n\)和\(m\)个三元组\((l_i,r_i,s_i)\)。每个三元组对应如下函数,修改\(\{a_n\}\)中的元素并返回一个布尔值。defbubble(l,r,s):foriinrange(s,n+1):#s<=i<=nifl>a[i]:l,a[i]=a[i],lret......