完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我找到了有用的库和APP注释AN1095如下:http://WW1.Microchip .com /下载/ En/ActualLabor /数据%20EEPROM %20仿真%20%201PIC/01095D.PDFI有一个关于如何使用这个问题的简单问题。图书馆如何决定它将在哪里写入程序存储器?我担心的是,写操作会破坏现有的程序指令代码。
以上来自于百度翻译 以下为原文 I found the useful library and app note AN1095 below: http://ww1.microchip.com/downloads/en//softwarelibrary/data%20eeprom%20emulation%20for%20pic/01095d.pdf I had a simple question about how to use this. How does the library decide where in program memory it will write to? My concern is that the write operations will clobber existing program instruction code. |
|
相关推荐
15个回答
|
|
将有256字节的部分,它不会超过你的代码。
以上来自于百度翻译 以下为原文 There will be sections of 256 bytes. It will not over write your code. |
|
|
|
有专门的程序存储器允许这个吗?如果不是,它是从最后一个程序代码地址开始的吗?
以上来自于百度翻译 以下为原文 Is there a dedicated section of program memory that allows for this? If not, does it simply start after the last program code address? |
|
|
|
数据EEPROM仿真在8位、16位和32位设备上有不同的实现,一般来说,DEE数据存储在链接器所知道的程序存储器的一部分中,并根据节属性放置在程序存储器中,这样就不会与C程序的其他部分发生冲突。如果程序内存不足,链接器应该能够讲述问题。您应该能够从链接器中找到DE数据.map报表文件。迈西尔
以上来自于百度翻译 以下为原文 Data EEPROM Emulation is implemented differently for 8-bit, 16-bit and 32-bit devices. In general DEE data is stored in a section of program memory that the Linker know about, and place in program memory according to section attributes, such that there is no conflict with other sections of program code. If program memory is not sufficient, linker should be able to tell about the problem. You should be able to find the dee data in .map report file from the linker. Mysil |
|
|
|
很酷,谢谢。还有一个问题——我对DATAYEEEE大小、页面中的指令数量和一行中的指令数量之间的差异感到困惑。也许有一些图形描述,澄清,银行,网页,指令,大小,行,字节等。
以上来自于百度翻译 以下为原文 Cool, thanks. One more question - I am confused about the difference between DATA_EE_SIZE, number of instructions in a page, and number of instructions in a row. Perhaps there is some graphical depiction somewhere that clarifies, banks, pages, instructions, size, rows, bytes, etc. |
|
|
|
您好,您还没有告诉您使用的是什么设备类型,即使它是8位、16位或32位设备。它是数据表的内存部分,它描述了您使用的设备的内存组织。迈西尔
以上来自于百度翻译 以下为原文 Hi, You still haven't told what device type you are using, not even if it is 8-bit, 16-bit or 32-bit device. It is the Memory section of datasheet that that have description of memory organisation of the device you use. Mysil |
|
|
|
它是一个16位-PIC24H。内存部分(7029 3G。PDF)描述了组织。存储器部分指示如何将程序存储器分成24位宽的块(每个块是一个MSW和一个LSW)。它还说最多4百万字,但是也说程序存储器是128KB。在RTSP部分也有一些讨论说:“使用RTSP,用户应用程序可以一次或一个程序内存字写入64个指令(192字节)的块或行的程序存储器数据,并擦除程序存储器中的程序存储器。KS或“页面”的512个指令(1536字节)一次。“内存部分并不能真正阐明EEPROM仿真结构是什么。此外,AN1095没有解释它。我发现另一个论坛发布也表明了一些混乱,不幸的是,没有得到任何回应:HTTP://www. McCHIP.COM/FUMMS/M90711.ASPX
以上来自于百度翻译 以下为原文 It's a 16-bit - PIC24H. The memory section (70293G.pdf) describes the organization. The memory section indicates how program memory is split into 24 bit wide blocks (each block is one MSW and one LSW). It also says up to 4M words, however it is also says program memory is 128kB. (I'm not sure how to reconcile those two.) There is also some discussion in the RTSP section saying "With RTSP, the user application can write program memory data either in blocks or ‘rows’ of 64 instructions (192 bytes) at a time or a single program memory word, and erase program memory in blocks or ‘pages’ of 512 instructions (1536 bytes) at a time." The memory section doesn't really clarify what the eeprom emulation structure is. Also, the AN1095 doesn't explain it. I found another forum posting also indicating some confusion on this; unfortunately that one didn't get any responses: http://www.microchip.com/forums/m907110.aspx |
|
|
|
24位是从16位地址读取的。这是一种巧妙的技术。你需要查看Flash数据表,它全部在那里。想象一个24位的数组,你把它索引为0、2、4等。如果你从程序地址2读到表读低,你就可以从程序地址2中读取0x9ABCIF,表读高,Y。OU得到0x00 78(00 =幻像),它是直接寻址。万0x12345 600 0x0x78,9ABC000 04 0xDE,F012。
以上来自于百度翻译 以下为原文 24bits are read from a 16bit address. It's a clever technique. You need to look into the flash datasheet, it's all in there. Image an array of 24bits, you index it 0,2,4 etc. If you read from program address 2 with table read low, you get 0x9abc If you read from program address 2 with table read high, you get 0x0078 (00 = phantom) It is in-direct addressing. 0000 0x12,3456 0002 0x78,9abc 0004 0xde,f012 |
|
|
|
1)你说的闪存数据表是什么?这一个?HTTP//WW1.MICCHIP.COM/DeLoSs/En/DeVICECD/70191E.PDFE本身不解释EEPROM仿真结构本身。此外,EEPROM仿真不是使用数据存储器,而是程序存储器。2)程序存储器是24位,地址也是24位,而不是16位。
以上来自于百度翻译 以下为原文 1) Which flash datasheet do you mean? This one? http://ww1.microchip.com/downloads/en/DeviceDoc/70191E.pdf That doesn't explain the eeprom emulation structure per se. Also, eeprom emulation isn't using data memory, but rather program memory. 2) Program memory is a 24-bit, and the addresses are also 24-bit, not 16. |
|
|
|
1)是的。如果它是使用数据存储器,那么它将不是一个好的EEPROM仿真器。仿真器不是芯片的一部分,它只是一个软件。只有有限的时间可以写入闪存。如果一个真正的EEPROM将在几百万。2)它是一个16位ADDR总线,HunSE 1。6BIT.24BIT不是直接可寻址而不设置表页。类似于芯片选择。您不能只说:推0x020408。这将工作:MOVα0x02,TMPMOV TMP,TBLPAGpush 0x0408。
以上来自于百度翻译 以下为原文 1) Yes. If it was using data memory then it wouldn't be much good as an eeprom emulator. The emulator is not part of the chip, it's just a bit of software. There are only a finite amount of times you can write the flash. Where as a true eeprom would be in the millions. 2) It is a 16bit addr bus, hense 16bit. 24bit is not directly addressable without setting the table page. Similar to chip select. You can't just say: push 0x020408. This will work: mov #0x02,tmp mov tmp,TBLPAG push 0x0408 |
|
|
|
我搞糊涂了。右边的地址是24位?
以上来自于百度翻译 以下为原文 I'm confused. Addresses on right are 24-bit? Attached Image(s) |
|
|
|
这么多年之后,我还是很困惑:点是,地址中每2个“数字”,你有3个字节。实际上是4,但是第四被称为“幻象字节”,并且实际上不存在——尽管它是为了所有的双字访问而存在的…
以上来自于百度翻译 以下为原文 I still am after so many years It's confusing: point is, every 2 "numbers" in addresses, you have 3 bytes. Actually 4, but the 4th is called "phantom byte" and does not really exist - though it's there for the purpose of all double-word accesses... |
|
|
|
地址0x000是LSW地址,0x000是MSW地址。好的。LSW是2字节,MSW是一个字节加上一个幻像字节。好的。每一个都是24位地址,而不是GOT2015所说的16位。对吗?
以上来自于百度翻译 以下为原文 Address 0x000002 is the lsw address, and 0x000003 is the msw address. Fine. lsw is 2 bytes and msw is one byte plus one phantom byte. Fine. Each of those are still 24-bit addresses, not 16-bit as Gort2015 was saying. Right? |
|
|
|
不!这是有趣的事情,如果你看看MPLAB的闪存转储,你会看到…就像16位地址(“时隙”),每个“持有”一个3字节的内容…
以上来自于百度翻译 以下为原文 No! That's the funny thing If you look at the Flash memory dump in MPLAB you'll see... it's like having 16bit addresses ("slots") each "holding" a 3 byte content... |
|
|
|
PoT是这样的。你不能将16位放入16位。00美元:FFFE在十进制63534中。如果你前进了,你得到$0.00万。它是由编译器或如果你正在装配到该公司的页面。所以你得到$01:10000;65636or在C到Simulf.In int xx(10);索引前进1,得到下一个项目。每个项目都是4字节。高字节字节的幻像字节总是返回零。这样,你就可以在不需要做的情况下在高字上做16位OPS。和*0xFF,HyWord。
以上来自于百度翻译 以下为原文 Put is this way. You can't put 24bits into 16bits. $00:FFFE in decimal 65534 If you advance that, you get $00:0000. It's up to the compiler or if you are assembling to inc. the page. so you get $01:0000 ;65536 Or in C to simplify. long int x[10]; The index is advanced by 1 to get the next item even though each item is 4 bytes. The phantom byte of the high word byte always returns zero. That is so you can do 16bit ops on the high word without having to do. and #0xff,highword. |
|
|
|
嗨,让我们从一个更简单的方式来看它。大多数处理器是字节导向的,即每个地址包含一个字节。但是这不是强制性的。Microchip 16位设备在每个程序存储器地址中包含一个字(16位),每个数据存储器地址中包含一个字节。ON是24位,它需要2个闪存地址。高地址(奇数地址)的MSB不存在(鬼)。
以上来自于百度翻译 以下为原文 Hi, Let's look at it from a simpler way. Most processors are byte oriented i.e. each address contains a single byte. But it is not mandatory to do this. Microchip 16 bits devices contain a word (16bits) in each Program Memory address and contain a byte in each Data Memory address. Because each instruction is 24 bits, it needs 2 flash addresses. The MSB of the High address (odd address) does not exist (ghost). Regards |
|
|
|
只有小组成员才能发言,加入小组>>
5248 浏览 9 评论
2036 浏览 8 评论
1956 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3217 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2264 浏览 5 评论
786浏览 1评论
677浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
603浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
684浏览 0评论
581浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 04:19 , Processed in 1.618313 second(s), Total 106, Slave 90 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号