News:

;) This forum is the property of Proton software developers

Main Menu

Positron Studio Update

Started by JohnB, Jul 29, 2021, 08:11 AM

Previous topic - Next topic

tumbleweed

MPASM (and 8bit_device.info) from Microchip isn't updated anymore... the last version was for MPASMX v5.87 which came with MPLABX v5.35. They now use the PIC-AS assembler, which uses a completely different database.

For new 8-bit devices Les has generated a custom version of 8bit_device.info (similar to what the Swordfish folks have been doing for a few years), which can be found in the PDS\Includes\bin8 folder. The original version is still in PDS\Includes, so you now have to search two files to get a complete list.


trastikata

18F4550 isn't a new device and it should be there.

I've just installed the latest version and it works for me just fine, just for the test 4550, 4553, 14K50, 26J53 all there.

JohnB

@tumbleweed
QuoteFor new 8-bit devices Les has generated a custom version of 8bit_device.info
That is news to me, it was never passed on to me so I guess fuse config is only looking at the old file.  When I get back to a working installation of Positron I will update fuse configurator in Positron Studio to use both files.
JohnB

DataBite

Hi John,

Thanks for creating positron studio. I have a question regarding the Perpheral Pin Select Tool.
Will it be expanded in the future with the dsPIC33EPXXXMC806 ?

Thanks in advance,
Rudi

JohnB

#324
I get the data for the PPS pins from MPLABX so if the info is in there I should be able to support it. Unfortunately the data is buried deep within the support files for MPLABX. The data files used by the PPS wizard are at least 4 years old. I will update them and publish a new version in the next couple of weeks.

Edit
I have just looked into the recent MCC files supplied by Microchip and the dsPIC33EPXXXMC806 series is included in the list.  I will create a new data file set which should enable you to use the PPS Wizard with your preferred device.
JohnB

John Lawton

Thanks John. IMHO your Peripheral Pin Select Tool and Fuse Configurator are must-have tools for the developer as the devices seem to get ever more complex.

JohnL

DataBite

Hi John,

Looking forward to it

Rudi

JohnB

I have created a new set of data files for the PPS Wizard.  This is an expanded list and includes the dsPIC33EPXXXMC806 series if supported by Positron Compiler. You can download these files from here.

To install these files:
Navigate to  C:\Users\<User>\AppData\Roaming\Positron Studio\PlugIns\PPSWizard
In case you need to revert, Save the contents of Devices and Devices16Bit directories
Expand the zip file PIC 10-12-16-18.zip into Devices overwriting existing content
Expand the zip file PIC24-32-33.zip into Devices16Bit overwriting existing content

You should now have an up to date list of PPS supported devices.
I will be updating the PPS Wizard so that it loads rather quicker than current method  but in the meantime you can use these files.

Please let me know if there are any inaccuracies when using the PPS Wizard, there are far to many devices for me to test against individually so must rely on users t let me know of any issues.
JohnB

DataBite

#328
Hi John, thanks for your efforts.

I have placed your files as you indicated in the Positron\ StudioPlugIns\PSWizard folder.
In this folder I unpacked the devices and installed the latest new PPSWizzard. But when I activate the PPSWizzard, I don't see dsPIC33EP512MC806 in the drop-down menu, while the dsPIC33EP512MC806_description is in the folder.  Did I miss a step or install something wrong?

JohnB

I didn't check with your specific device, when I open the app I check the Positron ppi files that the device is supported by Positron and the device supports PPS, only then does it get into the PPS app. I'll take a look at it with your specific device and see if I can find what's going on.
JohnB

JohnB

#330
You haven't installed the files in the correct location, instead, you have installed them in "Program Files\Positron Studio\Plugins\PPSWizard", please remove them, they are not program files. Only the PPSWizard.exe should be in that location.

Navigate to C:\Users\<User>\AppData\Roaming\Positron Studio\PlugIns\PPSWizard where <user> is your username.

In that directory you should see two subdirectors named "Devices" and "Devices16bit" and a file named "PPSWiizard.ini".

I suggest you rename the "Devices" and "Devices16bit" directories to "DevicesOld" and "Devices16bitOld"
This is so you can revert to the previous data set in case there are problems with the new data set.

Now create two new empty directories named "Devices" and "Devices16Bit".
Expand the zip file "PIC 10-12-16-18.zip" into directory "Devices"
Expand the zip file PIC24-32-33.zip into directory "Devices16Bit"

Edit

Just checked it on my installation the dsPIC33EP512MC806 is displayed in the PPS Wizard.
JohnB

keytapper

Quote from: JohnB on May 13, 2024, 08:40 AMNavigate to C:\Users\<User>\AppData\Roaming\Positron Studio\PlugIns\PPSWizard where <user> is your username.
Just a note: The AppData is a hidden folder.
Ignorance comes with a cost

DataBite

Hi John,

That's a lot better. Thanks for your help!

Gr Rudi

JohnB

If you cannot see all the pin layout image you can resize the app to fit or reduce image size using  the +/- buttons.
JohnB

DataBite

Yes , also with your mouse you can resize the tool.

What I find clever about your tool is that if you use the edit to choose a certain pin as output for a certain function, say a UART and that port is an RPI pin then your tool does not give the full code.  That way you know right away that you want something that can't be done!


Rudi

JohnB

I have added a new version of PPS Wizard, this one will build the list of devices once only and there after will always load immediately.  You can force the app to rebuild the device list by starting it from the command line with a "/R" or you can delete the LocalCache.dat file in C:\Users\<User>\AppData\Roaming\Positron Studio\PlugIns\PPSWizard.
JohnB

JohnB

Positron Studio Version 2.0.3.14

New – Added shortcut to DEF and PPI files for current device, Click (i) button on device panel to select.
Changed – Single click on Include in explorer will switch to declaration, Double click will open include.
Changed – PPS Wizard will only be enabled when PPI file has PPS entry.
Changed – PPS Wizard now retains a cache of devices so that subsequent opening is much speeder.
Changed – Fuse Config now uses both 8bit_device files enabling it to support newer devices.
Changed – Create New Project workflow to reduce user errors.
Changed – PPS Wizard extended to support newer devices.
Fixed – Code Header now appears above the associated code and not at the start of the document.
Fixed – On devices with missing config registers, Fuse Config will now cover all registers beyond the missing register.
Fixed – If search dialog is open, switching to a different page the cursor does not move from its previous position on that page. 

Download from Here
JohnB

top204

Many thanks John. Your work on the IDE is very much appreciated.

JohnB

Les - I may have asked you this before but do you support the vectored interrupts on the more recent 8 bit devices and if so should I add it to the existing Vectored interrupt wizard.
JohnB

top204

#339
Not yet John.

They are a very big change and are actually rather inefficient on an 8-bit PIC device, because each interrupt handler has to save its individual SFRs and system variables it is using because priorities mean another interrupt can interrupt another, multiple times with multiple interrupts. So that takes an awful lot of RAM for a program that has a few interrupts in it and some using floating point or operating peripherals that use quite a lot of compiler system variables and SFRs etc...

With the 16-bit devices, it was not a problem, because thay have more RAM and a true RAM stack, so the compiler pushes the contexts on to the stack, then pulls them off again when the interrupt is finished. And because the RAM stack is actually part of the device's architecture for calls and Push and Pop mnemonics, and stack based mnemonics in general, it is efficient, but not on a device that does not actually have a RAM stack, so a large lump of RAM has to be set aside for context saves/restores for multiple interrupts, the more interrupts the more RAM usage. The compiler's software stack could be used, but this will still take a lot of RAM and without true Push and Pop mnemonics on the 8-bit devices, it is very wasteful of both time and RAM space.

I think it is yet another thing that microchip have implemented that they have not actually thought about in "real life" programs. On paper it looks feasable (just), but in practice it is very wasteful and inefficient on the PIC 8-bit architecture. If they had implemented a true RAM stack on the newer devices it would have been a good feature, but not with the current architecture.

I will be looking into it, to see if I can make it a bit more efficient, but it is not on the list yet. If it was not for priorities, it would just be a lump of RAM to save/restore the SFRs and RAM that all the interrupts use between them because they would operate sequentially and not alter another interrupt handler's code. But priorities make that not possible.