Microchip
直播中

杨玲

7年用户 156经验值
私信 关注
[问答]

怎么从PIC18F2480中取出一些1和0?

你好微芯片社区!我是这里的新手,所以请原谅任何愚蠢的问题。所以这里的要点是:我设法从PIC18F2480中取出一些1和0。我想知道,如果不逐行逐行地将机器代码转换为汇编语言并试图理解它,我是否能够理解它的含义。我想,我要的是某种反汇编器和/或反编译器或其他软件逆向工程工具。以下是与这个问题相关的背景:我叫约翰·迈耶;我是俄勒冈州波特兰市的乌贼汽车诊所的老板。我是美国为数不多的几个从事名为Think City的瑞典品牌电动车研发工作的人之一。不幸的是,这家制造商倒闭了,我找不到汽车控制模块的任何文档,还有一些问题需要解决。具体地说,我附上的.hex文件来自PTC(正温度系数)加热器模块(汽车的车厢加热器);当汽车关闭时,加热器不知道立即关闭,因此,如果汽车的点火在几秒钟内被循环关闭和恢复,那么从加热器吸取的大电流导致牵引电池管理系统中的预充电电阻着火。我想更新代码来解决这个问题。还有一些其他的控制模块也使用PIC芯片,但不是特别相同的一个。我想为他们所有的人记录代码,并且能够找到将来可能出现的其他错误。我主要是一个机械师,所以我可能在这里有点不太熟悉,但是我确实有电子设备的经验,我已经参加过一些编程课程,包括C++的程序。至少我知道了头和makefile是什么。我还制作了一个电路板的示意图,这个PIC安装在上面,所以我知道哪些引脚也做什么。预先感谢!哦,如果你好奇的话,你可以在TwitkCuyPdxcom和CuttLeFisher网站上了解更多关于思考的内容。

回帖(19)

李建华

2020-3-27 07:49:12
你有没有想过把同样的代码编程到另一个PIC芯片中,它仍然有效吗?
举报

陈晨

2020-3-27 08:02:38
如果您从芯片读取数据并将其导入MPLAB,它将在PIC ASM中显示代码。但是PIC ASM远不是C++
举报

李铭鑫

2020-3-27 08:10:50
嗨,据我所知,Think City是由挪威的一家公司设计的,由Valmet汽车公司在Uusikaupunki在芬兰生产。迈西尔
举报

张蕾

2020-3-27 08:15:59
在阅读/修正一个被拆解的PIC程序时,你可以扔掉基于桌面的C++特定体验。使用算法和基本的编程结构,忘记剩下的部分。在PIC中,你没有庞大的框架可用于桌面编程,你也不需要。提供一个操作系统来提供所有底层支持。这里您深入了解了裸露的金属,并从那里开始构建。也就是说,我已经快速查看了您提供的十六进制文件的拆卸过程,它非常清晰。我想说这个程序可能是用汇编编写的。y而不是'C',它缺少优化编译器的扭曲代码和冗余gotos,在非优化编译代码中很常见。毫不奇怪,它是一个简单的PIC上的1K大小的小程序。在Timer0循环中,乍一看它好像中断优先级没有使用(PIC16兼容模式)。一大堆子例程。许多易于识别状态机和看起来像是什么,至少一个查找表。还有一些位操作顺序直接与PORT相连。寄存器,最初的程序员对R-M-W风险并不太警惕。总的来说,这并不是非常复杂的练习,但对于没有微控制器和ASM经验的人来说,这是一个困难的时期。最好的问候JorgeEDIT:Typo
举报

更多回帖

发帖
×
20
完善资料,
赚取积分