1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在MPLAB8下有查看PSV存储器的选项。我使用的是dsPI33EP512GM304。我有6502ROM代码,我想出现在数据存储器的0x8000(这样我就可以使用ze[w13++],w0来获得一个字节并清除w0的上位字节)。我启用了PSV/EDS,使用以下命令:movpag#edspage(ROM),DSRPAG;将ROM地址设置为在数据空间中出现$8000我的区段声明是:.section rom,psv,address(0x10000)ROM: .incbin"MyROM.rom";ROM@$8000-$BFFF.incbin"MyROM.rom";ROM@$C000-$FFFF实际上有两个问题。首先,如果包括第2个16KROM,就不能组装。上面说它超出了尺寸,但是每个ROM是16K,还有32K的空间可用?在我的例子中(CPU仿真器),16KROM以$E000-FFFF出现,并且镜像为$8000-BFFF,所以在内存中只使用ROM两次并使PSV从$8000-FFFF可用是最容易的。在某个时候,我会使用一个32K的ROM。我想做的是在PICs内存中硬编码ROM以0x10000开始,然后将PSV/EDS指向那个内存位置。我想用不同的ROM图像在0x10000重新闪烁这个块。其次,我看不出像使用MPLAB8那样查看PSV内容的任何方法。帮助文件声明一旦启用PSV,该选项在内存窗口中可用。事实并非如此。MPLABX模拟器支持PSV内容吗?谢谢!
以上来自于百度翻译 以下为原文 Under MPLAB8 there was the option to view PSV memory. I am using a dsPI33EP512GM304. I have 6502 ROM code that I want to appear at 0x8000 in the data memory (so that I can use ze [w13++],w0 to get a byte and clear the upper byte of w0). I am enabling the PSV/EDS using this: movpag #edspage(ROM),DSRPAG ; set ROM address to appear at $8000 in data space My section statement is: .section rom,psv,address(0x10000) ROM: .incbin "MyROM.rom" ; ROM @$8000-$BFFF .incbin "MyROM.rom" ; ROM @$C000-$FFFF There are two issues actually. First, this won't assemble if include the 2nd 16K ROM. It says that it exceeds the size, but each ROM is 16K and there is 32K of space available?? In my case (CPU emulator) the 16K ROM appears at $E000-FFFF and is also mirrored at $8000-BFFF, so it would be easiest to just use the ROM twice in memory and make the PSV available from $8000-$FFFF. At some point I will use a 32K ROM. What I want to do is hard code the ROMs to start at 0x10000 in the PICs memory, and then point the PSV/EDS to that memory location. I want to re-flash the block at 0x10000 with different ROM images. Secondly, I can't see any way to look at the PSV contents like you could with MPLAB8. The help file states that once PSV is enabled the option is available in the memory window. That is not the case. Does MPLABX's simulator support showing the PSV contents? Thanks! |
|
相关推荐
10个回答
|
|
每个ROM是8 K字节?你有16K什么免费?字节词?地址?PSV浪费了1/3的字节。
以上来自于百度翻译 以下为原文 each ROM is 8 K bytes? you have 16K what free? bytes words ? addresses? the PSV wastes 1/3 of the bytes. |
|
|
|
阿克!你说得对…我使用的是16K ROM(不是8K)。我已经更正了我的原始帖子。使用模拟器,上面的代码可以用来从$C000-$FFFF访问ROM,但是不能用于$8000-$BFFF。这只给了我8000-AFFF$的RAM(48K屏障),然后是垃圾。我希望能看到PSV内容,以确定DSRPAG的实际变化。我应该能够背靠背地放置几组ROM,并且只需更改DSRPAG以映射所使用的代码——而不必重新闪存程序内存。
以上来自于百度翻译 以下为原文 Ack! You're right... I am using 16K ROMs (not 8k). I have corrected my original post. Using the simulator, the code above works for accessing the ROM from $C000-$FFFF, but not at $8000-$BFFF. That just gives me the RAM at $8000-$AFFF (48K barrier), and junk after that. I would like to be able to see the PSV contents to determine what changes to the DSRPAG actually do. I should be able to put a couple sets of ROMs back to back and just change the DSRPAG to map what code is used - instead of having to re-flash program memory. |
|
|
|
如果更改页面寄存器,PSV可以查看整个闪存。
以上来自于百度翻译 以下为原文 The PSV can look at the whole flash if you change the page register. |
|
|
|
好的,我解决了这个问题,不能同时包含16K ROM。我刚刚删除了.section语句,并使用.org 0x8000-0x210(在PIC的程序内存中是0x8000)对.incbin进行硬编码。DSRPAG被正确地设置为0x0201:使用MOVPAGγEDSPAGE(ROM),DSRPAG。所以,现在效果不错。当我使用mov.b[xx],yy访问这些位置时,ROM从0x8000显示到0xFFFF。但是,我仍然不能像使用MPLAB8那样“查看”PSV内容。很高兴能看到什么将会被取走!关于如何在内存窗口中调用(如MPLABX模拟器帮助文件中所述)的任何想法?手动更改DSRPAG SFR可以更改32K页面,但是仍然没有办法将数据存储器视为PSV访问。从MPLABX模拟器帮助文件中:“程序内存窗口具有支持dsPIC设备的两种附加格式:”PSV数据“和”PSV混合。”在设备上启用了NPSV数据存储器,PSV窗口将在映射的地址上显示16位数据和标签。PSV混合显示在24位和16位都显示内存,并标记带有标签的数据并分解指令。在代码和数据共享这个区域的情况下,这个内存可以看作是程序内存和PSV数据内存。我找不到那是怎么选的…从帮助文件:“文件寄存器内存窗口具有支持DSPIC设备的附加功能。窗口格式可以被选择为“X/Y存储器”,以允许对该存储器空间进行检查和/或修改。此外,“双端口”格式可用于DSPIC3F/PIC24H设备,以更容易地显示DMA可访问存储器。这是DMA外围设备使用的RAM。
以上来自于百度翻译 以下为原文 OK, I solved the issue with not being able to include both 16K ROMs. I just got rid of the .section statement and hard coded the .incbin using .org 0x8000-0x210 (which is 0x8000 in the PIC's program memory). DSRPAG is set correctly to 0x0201 using: movpag #edspage(ROM),DSRPAG. So, that works fine now. The ROMs appear from 0x8000 to 0xFFFF when I access those locations using mov.b [xx],yy. However, I am still unable to "view" the PSV contents like I could with MPLAB8. It would be nice to be able to see what is going to be fetched! Any ideas on how to invoke this in the memory window (as stated is possible in the MPLABX simulator help file)? Changing the DSRPAG SFR manually works to change the 32K page, but there is still no way I can find to view the data memory as a PSV access. From the MPLABX Simulator help file: "The Program Memory window has two additional formats for supporting dsPIC devices: “PSV Data” and “PSV Mixed.” When PSV Data memory is enabled on the device, the PSV window will show 16-bit data and labels at the addresses mapped. The PSV Mixed display shows memory in both 24-bit and 16-bit, and tags data with labels and disassembles instructions. This memory can be viewed as both program memory and PSV data memory in the case where code and data share this area." It's also interesting to note that apparently the File Register Memory Window has the option of showing the X/Y sections. I am not able to find how that is selected... from the help file: "The File Registers Memory window has additional features for supporting dsPIC devices. The window format may be selected as “X/Y Memory” to allow the inspection and/or modification of this memory space. In addition a “Dual Port” format is available for dsPIC33F/PIC24H devices to show DMA accessible memory more easily. This is the RAM used by the DMA peripheral." |
|
|
|
模拟器负责确保使用PSV地址的指令被正确处理。显示内存是IDE问题。但是PSV只是程序内存的一个窗口,使用MPLAX的程序内存窗口有什么不对吗?
以上来自于百度翻译 以下为原文 The simulator is responsible for making sure instructions using PSV addresses are processed correctly. Displaying memory is an IDE issue. But PSV is just a window into program memory, what's wrong with just using MPLAB X's program memory window? |
|
|
|
不正确。PSV将只显示16位作为连续地址。
以上来自于百度翻译 以下为原文 Not exactly. The PSV will only show the Lower 16bits as consecutive addresses. |
|
|
|
我想看到PSV访问就像MPLAB8可以做…根据MPLABX模拟器帮助文件,你可以做到这一点。我在MPLAB8中经常使用这个特性,但不幸的是,我仍然使用MPLABX,因为在MPLAB8下不支持dsPIC33EP系列。你能看到像MPLABX模拟器帮助文件中所描述的PSV访问吗?我希望能够遍历模拟器mov.b[w13++],w0中的代码,并查看w13实际指向的内存。查看程序内存对我没有好处,因为在改变页面指针时没有直接关联。你必须计算偏移量,这就破坏了PSV观看选项的目的,你不这么说吗?我不关心这个问题是模拟器问题还是IDE问题。事实上,我无法查看PSV内存,这是这个产品的一个特点。如果这个能力存在,我只想知道如何启用它,这样我就可以完成一些工作。
以上来自于百度翻译 以下为原文 I want to see PSV accesses just like MPLAB8 can do... and according to the MPLABX Simulator help file, you are suppose to be able to do that. I used this feature quite a bit in MPLAB8, but unfortunately I am stuck using MPLABX because the dsPIC33EP series is not supported under MPLAB8. So, the question is... can you see PSV accesses as described in the MPLABX Simulator help file or not? I want to be able to walk through code in the simulator - like mov.b [w13++],w0 and see the memory that w13 is actually pointing to. Looking at the program memory does me no good because there is no direct correlation when changing the page pointer... you would have to calculate the offset, which defeats the purpose of having a PSV viewing option, wouldn't you say? I don't care if the problem is a simulator problem or IDE problem. The reality is that I can not view the PSV memory, and that's suppose to be a feature of this product. If this ability exists, I just want to know how to enable it so I can get some work done. |
|
|
|
通常,通过更改程序内存页上的格式选择,查看PSV数据。然而,该特性对于33 EP设备是禁用的。由于一些被遗忘的原因,MPLAB X无法从这些设备中提取PSV信息,以便能够呈现PSV内存视图。
以上来自于百度翻译 以下为原文 Normally you view the PSV data by changing the Format selection on the program memory page. However, this feature is disabled for 33EP devices. For some forgotten reason MPLAB X was unable to extract the PSV information from these devices to be able to render the PSV memory view. |
|
|
|
好的,这在任何地方都有记录吗?如果不是,您可能希望这样做,这样其他人就不会遇到与我相同的问题。这是否会在将来的某个时候得到解决和纠正?
以上来自于百度翻译 以下为原文 OK, is this documented anywhere? If not, you might want to do that so others don't run into the same issue that I have. Is this going to be addressed and corrected at some point in the future? |
|
|
|
我正在做更多的使用EDS/PSV内存访问的项目。我们是否能够通过MPLAB8看到一个窗口中指向的内存?
以上来自于百度翻译 以下为原文 I am doing more projects that use the EDS/PSV memory accesses. Are we ever going to be able to see the memory pointed to in a window like we could with MPLAB8? |
|
|
|
只有小组成员才能发言,加入小组>>
5238 浏览 9 评论
2028 浏览 8 评论
1950 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3204 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2253 浏览 5 评论
777浏览 1评论
666浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
595浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
676浏览 0评论
576浏览 0评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 02:00 , Processed in 2.013641 second(s), Total 94, Slave 78 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号