If you are developing with AVR devices, it is recommended that you upgrade to MPLAB X IDE v5.10 and MPLAB XC8 v2.05. Several AVR issues have been addressed in these versions. Alternately, you can use AVR_GCC.
AVR ATmega4808 and ATmega4809 devices support a feature for efficient access of data used by the application which resides in the flash program space. Currently, MPLAB X IDE will not identify this space as a separate viewable memory.
Workaround: The data is viewable where the data begins in the program memory space.
When launching a Debug Wire debug session and the device signature is wrong, the launch is aborted. However, a dialog pops up asking if you want to disable Debug Wire even though you never entered a Debug Wire session.
...
MPLABX-3832
MPLABX START project import: EDBG selected does not stay selected
...
MPLABX-3615
The AVR-GCC installed with the Arduino IDE does not work with MPLAB X IDE
AVR devices
MPLABX-3605
Debug Wire protocol on AVR devices does not work for MPLAB PICkit 4. For example, the ATmega328p. Programming uses a different protocol and is fine.
ATmega328p
MPLABX-3595
Memory notification not occurring when notification happens on a config mem change for AVR devices.
Though the sources are available, in professional circles not everybody will spent their expensive time building the compiler (that is far from being trivial exercise) with nobody to ask questions, so they buy directly the full version plus support from Microchip...
...or something. In fact, I'm able to use optimizations higher than -O1 on free version. Compiler complains I have no valid license, but the code builds and runs just fine, with apparent results of compiler optimization efforts.
...
[how to]
...
So, what is described here is option to get full optimization level of XC16 compiler without need to recompile the sources, what is far from being simple task. On the other hand, the gains from full options are not particularly huge, but it doesn't hurt anyway.
If you are developing with AVR devices, it is recommended that you upgrade to MPLAB X IDE v5.10 and MPLAB XC8 v2.05. Several AVR issues have been addressed in these versions.
[constants into program memory; not applicable for unified memory AVR]
Standard for free Unlicensed (Free) versions of this compiler now allow optimizations up to and including level 2. This will permit a similar, although not identical, output to what was previously possible using a Standard license.
[AVRASM2 bundled with MPLAB XC8 AVR]
...
(pages 8 and 9)
5. Fixed Issues
...
5.1. Version 2.05
[numerous]
...
(pages 9 and 10)
6. Known Issues
...
[install MPLAB X before installing MPLAB XC8]
[__memx and libgcc float]
[use __at() to specify an address instead of a linker option]
[data initialization by a linker option is not yet implemented]
[a long-term issue of limited function libgcc for reduced architecture tinyAVR]
Posted by MarkThomas: Sat. Jan 26, 2019 - 01:10 AM
1
2
3
4
5
Total votes: 0
I guess I will be using Atmel Studio 7, and ATmega328Ps and ATmega1284Ps for the rest of my life, along with my $20 Chinese AVR MKII and $50 Atmel ICE, for the rest of my life. My current 328 project is up to 85% of the available flash, so I am going to have to go to the bigger 1284 soon. Luckily the device we are building is getting larger too, so there is room for the 40 pin DIP in the prototypes.
I'm still using Visual Studio 2012 for Windows projects, and have found no need to go modern, although I see there is a free version of the latest non-enterprise Visual Studio. With Windows 7 I am an old guy with a set of tools to do whatever I need at present. After January next year I guess I will have to pay for Windows 7 updates, or maybe I will just take my code development machine off line, and use it as is until it dies.
... along with my $20 Chinese AVR MKII and $50 Atmel ICE, for the rest of my life.
Your life expectancy is much greater than an AVRISP2 or Atmel-ICE. Occasional posts here on the death of such tools.
Atmel-ICE does have sales at MicrochipDirect and am glad the ones of China create clones of the excellent Atmel AVRISP mkII.
Dean's LUFA AVRISP2 function-like can be built on a breadboard or protoboard for when one is in a pinch; several third parties sell these as a PCBA or in an enclosure.
·Improved debugWire experience for AVR MCU family. Use Project Properties dialog, "mEDBG" category, "Communication" options category, "Interface " to select ISP or debugWIRE. MPLAB X IDE sets/clears configuration bits accordingly.
·Support for ATSAM MCUs using the Atmel-ICE tool family (Xplained boards).
If you are developing with AVR devices, it is recommended that you upgrade to MPLAB X IDE v5.10 and MPLAB XC8 v2.05. Several AVR issues have been addressed in these versions. Alternately, you can use AVR_GCC.
AVR ATmega4808 and ATmega4809 devices support a feature for efficient access of data used by the application which resides in the flash program space. Currently, MPLAB X IDE will not identify this space as a separate viewable memory.
Workaround: The data is viewable where the data begins in the program memory space.
AVR-GCC Toolchain on a mounted drive in Linux does not get discovered with correct version information in MPLAB X IDE.
MPLABX-3991
Const declared variables display incorrect addresses in the watch window for AVR devices
MPLABX-3894
AVR STS instruction displayed incorrectly in multiple MPLAB X IDE displays:
·Program memory view
·Disassembly listing view
·Trace
...
MPLABX-3871
Using AVR 4809 and XC8 v2.00 the disassembly view seems to get lost when pausing in some projects. PC value is not lost during debugging. Continued debugging refreshes the disassembly view/reopening Disassembly view refreshes the display.
...
MPLABX-3840
BOOTEND and APPEND configuration values are not in the configuration window
ATmega4809
MPLABX-3839
Error in disassembly of rcall/call AVR instructions
[mega4809]
MPLABX-3836
When launching a Debug Wire debug session and the device signature is wrong, the launch is aborted. However, a dialog pops up asking if you want to disable Debug Wire even though you never entered a Debug Wire session.
...
MPLABX-3832
MPLABX START project import: EDBG selected does not stay selected
...
MPLABX-3725
LDS instruction generated has wrong operands in Disassembly view.
ATmega324PB
...
MPLABX-3678
On some projects, when first using MPLAB XC8 2.00 in MPLAB X v5.00, the build fails with No Chip name. The interim fix is to change the compiler drivers manually, under Tools>Options>Embedded>Build Tools>XC8 v2.00, C Compiler = xc8-cc, Assembler = xc8-cc, and then click OK.
8-bit MCUs
MPLABX-3657
Adding Library project for MPLAB XC8 v2.00 changes makefile to search for .hex/.elf in library project dist folder instead of .a file
8-bit MCUs
...
MPLABX-3615
The AVR-GCC installed with the Arduino IDE does not work with MPLAB X IDE
AVR devices
MPLABX-3595
Memory notification not occurring when notification happens on a config mem change for AVR devices.
If you are developing with AVR devices, it is recommended that you upgrade to MPLAB X IDE v5.10 and MPLAB XC8 v2.05. Several AVR issues have been addressed in these versions. Alternately, you can use AVR_GCC.
AVR ATmega4808 and ATmega4809 devices support a feature for efficient access of data used by the application which resides in the flash program space. Currently, MPLAB X IDE will not identify this space as a separate viewable memory.
Workaround: The data is viewable where the data begins in the program memory space.
...
17.8 IDE Specific Issues
...
MPLABX-4400
AVR devices
Upon importing a START project for AVR devices into MPLAB X IDE, you may observe incorrect Program Memory size being displayed in the Dashboard. This is due to outdated information in the DFP that is included in the START project. To see correct memory values and percentages in the Dashboard, it is recommended to switch to the DFP supplied by MPLAB X IDE rather than what is included in the START project.
MPLABX-4008
AVR MCUs
AVR-GCC Toolchain on a mounted drive in Linux does not get discovered with correct version information in MPLAB X IDE.
MPLABX-3991
atmega324pb
Const declared variables display incorrect addresses in the watch window for AVR devices
MPLABX-3894
AVR
AVR STS instruction displayed incorrectly in multiple MPLAB X IDE displays:
·Program memory view
·Disassembly listing view
·Trace
...
MPLABX-3871
[ATmega4809]
Using AVR 4809 and MPLAB XC8 v2.00 the disassembly view seems to get lost when pausing in some projects. PC value is not lost during debugging. Continued debugging refreshes the disassembly view/reopening Disassembly view refreshes the display.
....
MPLABX-3840
ATmega4809
BOOTEND and APPEND configuration values are not in the configuration window
MPLABX-3839
[ATmega4809]
Error in disassembly of rcall/callAVR instructions
MPLABX-3836
ATmega328PB, other AVR debugWIRE devices
When launching a Debug Wire debug session and the device signature is wrong, the launch is aborted. However, a dialog pops up asking if you want to disable Debug Wire even though you never entered a Debug Wire session.
...
MPLABX-3725
ATmega324pb
LDS instruction generated has wrong operands in Disassembly view.
...
MPLABX-3615
AVR devices
The AVR-GCC installed with the Arduino IDE does not work with MPLAB X IDE
MPLABX-3595
AVR devices
Memory notification not occurring when notification happens on a config mem change for AVR devices.
Dongle is perpetual though one might forget to pack the dongle for a road trip; dongle doesn't have HPA's priority support and the microchipDIRECT zero price shipping though does have updates.
In order to align with industry standards and to continue to provide you the best experience when using MPLAB X IDE, we will be making the following changes to the IDE:
A license-free version of Java will be distributed with MPLAB X IDE starting in version 5.40. MPLAB X IDE versions up to and including 5.35 will use the last free JRE version 8 from Oracle. No Oracle® JRE license will be required to use any version of MPLAB X IDE.
Operating system support for Windows, Mac OS and Linux will move to 64-bit only starting with MPLAB X IDE version 5.40. Product support releases will be delivered independently from MPLAB X IDE starting in version 5.30 by moving to a Device File Pack (DFP) system. A DFP can be applied to MPLAB X IDE version 5.30 or 5.35 to extend the life of the IDE for 32-bit operating systems Not all new devices added by a Device File Pack are guaranteed to work in these versions of the IDE
Install this compiler in the same location as MPLAB XC compilers so MPLAB X IDE can find them, e.g.; C:\Program Files (x86)\Microchip\AVR_GCC
...
7.3 Compiler Add-On Licenses
MPLAB Code Coverage (SW006026-COV): As of MPLAB X IDE v5.25, code coverage is supported for compilers that support this feature, namely:
·MPLAB XC8 v2.10
·MPLAB XC16 v1.40
·MPLAB XC32 v2.30
7.4 Assemblers/Linkers
Current assembler versions supported are:
[AVRASM2 2.2.6 and subsequent]
8.1 Web Documentation – Internet Access Required
...
Register Help: For some AVR devices, you can access on-line data sheets, user’s guides and other support documentation from a Kit Window. In an IO View or Editor window, you can select a register and then click on the PDF icon to open the on-line help for that register.
·MPLAB PICkit 4 Programmer-To-Go Beta Support: See the MPLAB PICkit 4 release notes for more information.
...
·MPLAB Code Coverage Support: Support in MPLAB X IDE for code coverage output generated by MPLAB XC C compilers in Free mode or with an MPLAB Code Coverage license (SW006026-COV). The first compiler versions with this feature are MPLAB XC8 v2.10, MPLAB XC16 v1.40, and MPLAB XC32 v2.30.
Upon importing a START project for AVR devices into MPLAB X IDE, you may observe incorrect Program Memory size being displayed in the Dashboard. This is due to outdated information in the DFP that is included in the START project. To see correct memory values and percentages in the Dashboard, it is recommended to switch to the DFP supplied by MPLAB X IDE rather than what is included in the START project.
AVR devices
MPLABX-3892
MPLAB X IDE does not always recognize debuggers connected to a docking station which has a thunderbolt USB.
AVR ATmega4808 and ATmega4809 devices support a feature for efficient access of data used by the application which resides in the flash program space. Currently, MPLAB X IDE will not identify this space as a separate viewable memory.
Workaround: The data is viewable where the data begins in the program memory space.
...
18.7 IDE Specific Issues
...
MPLABX-4576
When using the Power Debugger, there are issues with Auto Power Toggle mode. Therefore, in IDE v5.25, only the following options are available in Project Properties, High Voltage Activation:(a) No High Voltage (b) Simple Pulse (c) User Power Toggle.
Most AVR and SAM MCUs
...
MPLABX-4008
AVR-GCC Toolchain on a mounted drive in Linux does not get discovered with correct version information in MPLAB X IDE.
AVR MCUS
MPLABX-3991
Const declared variables display incorrect addresses in the watch window for AVR devices
ATmega324PB
MPLABX-3894
AVR STS instruction displayed incorrectly in multiple MPLAB X IDE displays:
·Program memory view
·Disassembly listing view
·Trace
AVR
MPLABX-3871
Using AVR 4809 and MPLAB XC8 v2.00 the disassembly view seems to get lost when pausing in some projects. PC value is not lost during debugging. Continued debugging refreshes the disassembly view/reopening Disassembly view refreshes the display.
AVR 4809
...
MPLABX-3840
BOOTEND and APPEND configuration values are not in the configuration window
ATmega4809
MPLABX-3839
Error in disassembly of rcall/callAVR instructions
AVR 4809
MPLABX-3836
When launching a Debug Wire debug session and the device signature is wrong, the launch is aborted. However, a dialog pops up asking if you want to disable Debug Wire even though you never entered a Debug Wire session.
ATmega328PB, other AVR debugWIRE devices
...
MPLABX-3832
MPLABX START project import: EDBG selected does not stay selected
...
MPLABX-3725
LDS instruction generated has wrong operands in Disassembly view.
ATmega324PB
...
MPLABX-3678
On some projects, when first using MPLAB XC8 2.00 in MPLAB X v5.00, the build fails with No Chip name. The interim fix is to change the compiler drivers manually, under Tools>Options>Embedded>Build Tools>XC8 v2.00, C Compiler = xc8-cc, Assembler = xc8-cc, and then click OK.
8-bit MCUs
MPLABX-3657
Adding Library project for MPLAB XC8 v2.00 changes makefile to search for .hex/.elf in library project dist folder instead of .a file
8-bit MCUs
...
MPLABX-3615
The AVR-GCC installed with the Arduino IDE does not work with MPLAB X IDE
AVR devices
MPLABX-3595
Memory notification not occurring when notification happens on a config mem change for AVR devices.
AVR devices
...
MPLABX-3168
AVR Disassembler fails to disassemble MOVW
AVR devices
Am assuming that AVR code coverage due to MPLAB XC8 v2.10 will be by the AVR simulator in MPLAB X v5.25
In 'Device Support.htm', AVR is tested (not beta) for :
AVR simulator CPU (XMEGA384, XMEGA256, XMEGA192, XMEGA128, mega128 range, mega64 range, mega32 range except mega32U2, mega16 range except mega16U2)
MPLAB PICkit 4 (mega4809, mega3209)
The new AVR devices are in beta form for all tools except AVR simulator peripherals, MPLAB XC8, MPLAB ICD 4 :
·See Header Support for a list of supported headers.
·Online help for MPLAB PICkit 4 has been updated regarding header support for v5.25. The PDF on the Microchip web page for the MPLAB PICkit 4 will be updated in a future release.
·Support for AVR-mode CDC implementation on MPLAB PICkit 4 and MPLAB Snap. See Virtual COM Port for more information.
When MPLAB X IDE (v4.15 or greater) is installed the MPLAB PICkit 4 In-Circuit Debugger will automatically update any necessary device drivers upon connecting to USB.
In MPLAB X IDE, create or open a project with the debugger selected as the Hardware tool. The debugger will automatically connect when code is executed. (To always be connected, see Tools>Options, Embedded, Generic Settings, “Maintain active connection to hardware tool”.) Also, the debugger can automatically detect if it has been disconnected/reconnected and if the target has been disconnected/reconnected.
4. In Programmer-To-Go mode, if the target is powered, no addition power is needed for the MPLAB PICkit 4 to operate. The target board must be capable of providing 350 mA of power for the PICkit 4 tool to operate properly. If the target board cannot provide enough power, you will need to provide power directly to the PICkit 4 through its USB port with either a power supply, computer, or USB power bank. [or USB isolator]
The Virtual COM Port is a general-purpose USB serial bridge between a host PC and a target AVR device.
The AVR-mode CDC implementation on the MPLAB PICkit4/SNAP Virtual COM port supports:
·Baud rates in the range 1200 bps to 500kbps
·Only 8-bit character format
·No hardware flow control
·One or two stop-bits
IMPORTANT NOTE: Connecting to the Virtual COM port from a terminal emulator will enable pins 7 and 8 on the MPLAB PICkit4/Snap header as TX and RX pins. This functionality is independent of the debugger functionality. You must ensure that you do not useCDC at the same time as a debug interface which also needs those pins, for example JTAG or SWD.
When programming these devices, bulk erase commands should be issued between successive programming operations, i.e., erase, then program, then erase, then program, etc. Therefore, Microchip advises against multiple-stage programming sessions which may fail to verify. For example, you should NOT do the following sequence with these devices:
The following is a list of known problems. For information on common problems, error messages and limitations please see Troubleshooting in the on-line help file for the MPLAB PICkit 4 debugger.
If you do not use the included cables, make sure the cables you do use are: (1) not longer than 6 inches [15 cm] for standard communications or errors could result and (2) USB 2.0 compliant if you will be using USB 2.0 communications. If you are using a hub, it must also be High Speed USB 2.0 compliant.
General debugging errors may occur while debugging at higher oscillator speeds. Changing to a slower oscillator speed like internal FRC without PLL may improve the debug experience.
Using the USB connection on a laptop PC with hibernate mode enabled will lock up the debugger if hibernate mode is entered. Unplug the USB cable from the MPLAB PICkit 4 debugger and then plug the cable back in to resume debugging. You may want to disable hibernate mode while using the debugger. From Control Panel, select "Power Options" and disable hibernate mode.
Virus protection software can interfere with USB driver installation. If your development tool is not operational and you have tried reinstalling the USB drivers, consider disabling your virus protection software and reinstalling the USB drivers again.
SPI001-113: SPI misses SDI input when single-stepping with freeze in debug enabled.
The firmware update will fail with either the MPLAB PICkit 4 or the MPLAB Snap ICD tool, when using:
- USB Full-speed port
- USB Full-speed hub
- USB Full-speed isolator
Workaround:
The tool would have to be plugged into a USB Full-speed or USB SuperSpeed USB port/hub/isolator to allow the firmware update process to complete successfully.
After the firmware update completes, the tool can then be plugged back into a USB Full-speed port/hub/isolator.
To see the number of breakpoints supported for your device and the number of breakpoints used in your project, use the Dashboard window (Window>Dashboard).
To see breakpoint information for all supported devices, use either:
-Hardware Tool Debug Features by Device– local HTML file
Note: For PIC18FxxJ devices, there is a limitation that only 1 data capture is available.
>it's only the IDE that is unhappy with the symbols
It hasn't been happy for years. I normally use another code editor while mplabx does the compiling. Either editor will see changes made and reload. If I'm lazy, I'll use mplabx to get to the error source (click link in error output), make changes there, recompile, then back to the good editor for most of the work.
·MPLAB Code Coverage Support: Support in MPLAB X IDE for code coverage output generated by MPLAB XC C compilers in Free mode or with an MPLAB Code Coverage license (SW006026-COV). The first compiler versions with this feature are MPLAB XC8 v2.10, MPLAB XC16 v1.40, and MPLAB XC32 v2.30.
MPLAB® XC8 C Compiler Version 2.10 Release Notes for AVR® MCU
...
1.2. Release Date The official release date of this compiler version is the 28 July 2019.
...
1.4. Component Licenses and Versions
...
This compiler is an implementation of GCC version 5.4.0, binutils version 2.26, and uses avr-libc version 2.0.0.
...
3. What's New
...
3.1. Version 2.10
Code Coverage This release includes a code coverage feature that facilitates analysis of the extent to which a project’s source code has been executed. [coverage data into RAM] After execution of the program on your hardware, code coverage information will be collated in the device, and this can be transferred to and displayed by the MPLAB X IDE via a code coverage plugin. See the IDE documentation for information on this plugin can be obtained.
Device description files ...
Procedural abstraction Procedural abstraction optimizations, which replace common blocks of assembly code with calls to an extracted copy of that block, have been added to the compiler. These are performed by a seperate application, which is automatically invoked by the compiler when selecting [-Os] level optimizations. These optimizations reduce code size, but they may reduce execution speed and code debugability.
Lock bit support in pragma ...
New device support Support is available for the following parts: AVR28DA128, AVR64DA128, AVR32DA128, and AVR48DA128.
...
5. Fixed Issues
...
5.1. Version 2.10
Relocation failures (XC8-1891) The best fit allocator was leaving memory 'holes' in between sections after linker relaxation. Aside from fragmenting memory, this increased the possibility of there being linker relocation failures relating to pc-relative jumps or calls becoming out of range.
Instructions not transformed by relaxation (XC8-1889) Linker relaxation did not occur for jump or call instructions whose targets become reachable if relaxed.
Missing <power.h> functionality (XC8E-388) ...
Missing macros ...
...
6. Known Issues
...
6.1. MPLAB X IDE Integration
...
6.2. Code Generation
Failure with library functions and __memx (XC8-1763) [libgcc floating point functions and a __memx argument]
Broken linker option (XC8-1755) [use __at() to set an object's address]
Data initialization [option to the linker isn't implemented]
I guess I will be using Atmel Studio 7, and ATmega328Ps and ATmega1284Ps for the rest of my life, along with my $20 Chinese AVR MKII and $50 Atmel ICE, for the rest of my life.
>it's only the IDE that is unhappy with the symbols
It hasn't been happy for years.
So I tracked this down, since it was damnably inconsistent.
1) Chip-specific symbols (like USART_CHSIZE_gm )
There are actually two problems here:
In order to support added-on "Packs", avr/io.h has a catch-all rule to find the right include file:
#elif defined (__AVR_ATtiny11__)
# include <avr/iotn11.h>
#elif defined (__AVR_M3000__)
# include <avr/iom3000.h> #elif defined (__AVR_DEV_LIB_NAME__) # define __concat__(a,b) a##b # define __header1__(a,b) __concat__(a,b) # define __AVR_DEVICE_HEADER__ <avr/__header1__(io,__AVR_DEV_LIB_NAME__).h> # include __AVR_DEVICE_HEADER__
#else
# if !defined(__COMPILING_AVR_LIBC__)
# warning "device type not defined"
This is apparently (and not surprisingly) not understood by whatever logic parses the source in the editor.
If you edit the source of io.h to add:
#elif defined (__AVR_ATmega4809__)
# include <avr/iom4809.h>
in an appropriate place, it will get happier (after you convince it to reparse everything.)
At least, if you're using avr-gcc. If you're using xc8, there's an additional problem. The compile command is something like:
Which works fine, but the IDE doesn't recognize -mdfp switch as creating a new include path, so when io.h ends up doing the#include <avr/iom4809.h>the IDE doesn't find it, so it can't see the 4809-specific defines. Adding an explict include path for the pack include directory fixes it (as does copying the .h to the "normal" avr directory.)
Grr. So - understood, might have workarounds, might be fixable...
The uint8_t issue is somewhat similar. It's not a problem using avr-gcc, but using xc8, the stdint.h file that gets included in a wrapper that the IDE parser doesn't seem to deal with very well:
(huh. I wonder if this sort of parsing difficulty is what has driven the "Atmel Start" "style" of copying all the relevant include files to the project directory?)
It's not much of a source browser if it doesn't understand ALL the preprocessor and C syntax !
The two(*) source browsers I find to understand pretty much everything are Intellisense in Visual Studio and the browser in Eclipse. Most others (like VassistX in AS7) have some things (like pre-pro conditionals) they can't seem to cope with.
(* Oh and SourceInsight but that's quite a costly option).
It's not much of a source browser if it doesn't understand ALL the preprocessor and C syntax !
Well, "#include_next" seems to be a gcc "extension", and I had never heard of it before (and yet, I knew instantly what it would do! Well-named!)
So it seemed an obvious suspect.
Having lived through at least one massive change in the way the pre-processor works, I'm inclined to be a bit lenient on things that don't quite get it right.
(although at this point, you'd think that IDEs would just run the actual compiler whenever they detected a change that might affect symbol values?)
·MPLAB Code Coverage Support: Support in MPLAB X IDE for code coverage output generated by MPLAB XC C compilers in Free mode or with an MPLAB Code Coverage license (SW006026-COV). The first compiler versions with this feature are MPLAB XC8 v2.10, MPLAB XC16 v1.40, and MPLAB XC32 v2.30.
I discovered (the hard way) that if you modify the "memory settings" dialog of the avr-ld options in your MPLAB project:
.boot=0
.application = 0x200
MPLAB will happily multiply those by two for you, to make up for the whole "Atmel likes word addressing, Gnu likes byte addressing" thing, and the actual link
Operating system support for Windows, Mac OS and Linux will move to 64-bit only starting with MPLAB X IDE version 5.40. Product support releases will be delivered independently from MPLAB X IDE starting in version 5.30 by moving to a Device File Pack (DFP) system. A DFP can be applied to MPLAB X IDE version 5.30 or 5.35 to extend the life of the IDE for 32-bit operating systems Not all new devices added by a Device File Pack are guaranteed to work in these versions of the IDE
1. Install this compiler in the same location as MPLAB XC compilers so MPLAB X IDE can find them, e.g.;C:\Program Files (x86)\Microchip\AVR_GCC
...
8.1 Web Documentation – Internet Access Required
...
Register Help: For some AVR devices, you can access on-line data sheets, user’s guides and other support documentation from a Kit Window. In an IO View or Editor window, you can select a register and then click on the PDF icon to open the on-line help for that register.
Using AVR 4809 and MPLAB XC8 v2.00 the disassembly view seems to get lost when pausing in some projects. PC value is not lost during debugging. Continued debugging refreshes the disassembly view/reopening Disassembly view refreshes the display.
AVR ATmega4808 and ATmega4809 devices support a feature for efficient access of data used by the application which resides in the flash program space. Currently, MPLAB X IDE will not identify this space as a separate viewable memory.
Workaround: The data is viewable where the data begins in the program memory space.
...
18.9 IDE Specific Issues
...
MPLABX-4008
AVR-GCC Toolchain on a mounted drive in Linux does not get discovered with correct version information in MPLAB X IDE.
AVR MCUs
MPLABX-3991
Const declared variables display incorrect addresses in the watch window for AVR devices
atmega324pb
MPLABX-3894
AVR STS instruction displayed incorrectly in multiple MPLAB X IDE displays:
·Program memory view
·Disassembly listing view
·Trace
AVR
...
MPLABX-3840
BOOTEND and APPEND configuration values are not in the configuration window
ATmega4809
MPLABX-3839
Error in disassembly of rcall/callAVR instructions
AVR 4809
MPLABX-3836
When launching a Debug Wire debug session and the device signature is wrong, the launch is aborted. However, a dialog pops up asking if you want to disable Debug Wire even though you never entered a Debug Wire session.
ATmega328PB, other AVR debugWIRE devices
...
MPLABX-3725
LDS instruction generated has wrong operands in Disassembly view.
ATmega324pb
...
MPLABX-3615
The AVR-GCC installed with the Arduino IDE does not work with MPLAB X IDE
AVR devices
MPLABX-3595
Memory notification not occurring when notification happens on a config mem change for AVR devices.
AVR devices
...
'Device Support.htm' :
Beta for most AVR
Tested, CPU simulator : approx half of XMEGA, most megaAVR
The Virtual COM Port is a general-purpose USB serial bridge between a host PC and a target AVR device.
The AVR-mode CDC implementation on the MPLAB PICkit4/SNAP Virtual COM port supports:
·Baud rates in the range 1200 bps to 500kbps
·Only 8-bit character format
·No hardware flow control
·One or two stop-bits
IMPORTANT NOTE: Connecting to the Virtual COM port from a terminal emulator will enable pins 7 and 8 on the MPLAB PICkit4/Snap header as TX and RX pins. This functionality is independent of the debugger functionality. You must ensure that you do not useCDC at the same time as a debug interface which also needs those pins, for example JTAG or SWD.
On low pin count AVR devices with UPDI, the UPDI pin can be configured as GPIO or RESET by configuring the RSTPINCFG configuration bits. To do further programming, the MPLAB PICkit 4 will have to use a high voltage pulse to reactivate the UPDI interface. When using the high voltage pulse, you must make sure that all circuits connected to the UPDI wire can tolerate a pulse of at least 12V.
In Project Properties, go to the “PICkit 4” category, “Communications” option category, “High Voltage Activation Mode”.
Drop-down menu item
Description
No High Voltage
Default setting.
Simple High Voltage Pulse
The tool will try to activate the interface by issuing a high voltage pulse. This procedure is safe if the pin is configured as an input.
User Power Toggle
In this mode the user will be prompted to toggle power on the target device. Once the tool detects that the power returns it will issue a high voltage pulse before the target device pin is configured, making the activation procedure as gentle as possible.
GPIO vs. UPDI Operation:
When using a high voltage pulse to reactivate the UPDI interface, the reactivation is only temporary, but it will retain the UPDI functionality until the next reset. After the next reset, the pin will go back to the configuration as specified by the RSTPINCFG configuration bits. To have the pin configured as UPDI after a reset, the user will have to change the RSTPINCFG configuration bits back to UPDI.
It is possible to perform a debug session when the RSTPINCFG is configured to GPIO, but the pin will be temporarily configured as UPDI, and the pin will not operate as a GPIO pin.
SYSCFG0 RSTPINCFG[1:0] Configuration Bits
Values
Function
0x0
GPIO
0x1
UPDI
0x2
RESET
0x3
Reserved
Known Issues with UPDI:
·MPLABX-4901: Trying to write to the target with Simple High Voltage Pulse mode enabled and the RSTPINCFG configured to GPIO/RESET, will result in "PDI enable failed (27)". This is seen the first time but will work if tried the second time.
·MPLABX-4902: Sometimes when trying to read the target with User Power Toggle mode enabled and the RSTPINCFG configured to GPIO, will result in "PDI physical timed out (25)". This is seen the first time but works if tried the second time.
Um. Has anyone tried this yet? I connected my PICKit 4 to a scope (no actual device), and tried assorted UPDI-requiring things (since we're interested in the exact timing of that 12V pulse...)
I don't see any 12V pulses at all... In fact, I see the same waveform with and without the HV feature enabled.
(this is on a Mac. Maybe they forgot something on the Mac?)
While waiting, you can play around with the vcom instead. No Woo hoo for that either, I'm afraid to say. Although the disappointment was expected.
None of these debuggers want to keep vcom going while programming. Start to program, vcom disconnects, whatever terminal you had going quits, programming done, vcom appears again via usb enumeration, fire up the terminal again to connect. Repeat for every time you program the mcu. Maybe not so bad if you only program once a day, but I tend to program until I get it right for whatever problem is at hand, which ends up quite often.
The ?edbg variations are the same, except half the time you also lose the programmer/debugger which requires a power cycle. I was hoping with the high power engine under the hood of the snap, that the vcom would stay up. I'm not quite sure why they cannot keep the vcom going during programming.
The snap is a good programmer/debugger, though. I have my mega4809 nano board connected to the snap (1k pullup on updi), using the 'AVR Toolchain' compiler, and have an Omega2 linux module close by to do the uart duties (a bash script on the omega where I can just ssh into a terminal that has serial io redirected to the terminal). I have been using that combo for a few weeks, and have not had a single problem. I can keep the ssh connection up as long as my wifi router is willing stay up, the snap always works (never a power cycle needed), and the 'AVR Toolchain' is so fast at compiling I often wonder if anything happened (xc8 is not slow, but there is a difference that is noticeable, probably due to the need for xclm to compute a hash every time one of the guarded executable's run). I also have a pic32mm with the same setup (another Omega2, using uart at 1Mbps), and that is the same- always good, always fast, never a problem.
If you struggle with a ?edbg variation, you may want to look into spending $15 for a snap. I think its worth it (and you can program a pic that does not require hv, pic32, and I suppose their arm mcu's, if ever wanted).
The necessary FW upgrade for PICkit4 was not included in the release.
"oops."
In general, or just for MacOS? (I can imagine both the "of course the same ancillary files are used for all OSes!" AND "The content for each OS is customized for that OS" scenarios.)
MPIPE *did* update my firmware to 1.6.87
Edit: and alas, after installing 5.30 on a PC as well, it did not offer to upgrade the firmware any further. :-(
via MPLAB- X IDE | Microchip Technology
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopThere might be a way to unlock MPLAB XC8 v2.
Whether the timing and sizing improvements are significant enough would need some evaluation.
Clang C Language Family Frontend for LLVM
Embedded C Compilers and Tools for Software Development: HI-TECH Software
GitHub - cv007/XC3216: GCC compiler restrictions removal
via https://www.microchip.com/forums/FindPost/1050359
in GCC Build | Microchip
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopWhy fight them though? If they don't want you to use their parts, don't use them. There are plenty of others offering free high quality tools.
- Log in or register to post comments
TopMPLAB REAL ICE In-Circuit Emulator
due to DEVELOPMENT TOOL DEALS microchipDIRECT (bottom)
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopMPLAB XC8 PRO is on sale at half price.
SW006021-2 - MPLAB XC8 PRO Compiler (Workstation License)
due to DEVELOPMENT TOOL DEALS microchipDIRECT (bottom)
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopWow they really don't want hobbyists playing with their chips!
- Log in or register to post comments
Top"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
Topvia Downloads tab at MPLAB- XC Compilers | Microchip Technology
AVR® Devices in MPLAB® XC8 v2.05 - Developer Help
edit: last URL
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopI guess I will be using Atmel Studio 7, and ATmega328Ps and ATmega1284Ps for the rest of my life, along with my $20 Chinese AVR MKII and $50 Atmel ICE, for the rest of my life. My current 328 project is up to 85% of the available flash, so I am going to have to go to the bigger 1284 soon. Luckily the device we are building is getting larger too, so there is room for the 40 pin DIP in the prototypes.
I'm still using Visual Studio 2012 for Windows projects, and have found no need to go modern, although I see there is a free version of the latest non-enterprise Visual Studio. With Windows 7 I am an old guy with a set of tools to do whatever I need at present. After January next year I guess I will have to pay for Windows 7 updates, or maybe I will just take my code development machine off line, and use it as is until it dies.
- Log in or register to post comments
TopAtmel-ICE does have sales at MicrochipDirect and am glad the ones of China create clones of the excellent Atmel AVRISP mkII.
Dean's LUFA AVRISP2 function-like can be built on a breadboard or protoboard for when one is in a pinch; several third parties sell these as a PCBA or in an enclosure.
https://www.avrfreaks.net/forum/megaavr-0-series?page=2#comment-2587131
Oops, scratch that.
edits: typo, oops
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopMPLAB® X IDE - Debugging with Unified Program and Debug Interface (UPDI) for AVR® MCUs - Developer Help
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopYes, I have used MPLABX with the XMINI-Tiny817. MPLABX works ok with the UPDI hardware but the software is less developed than AS7.
I have been busy with other things. I should find some time and make more effort with AVR.
David.
- Log in or register to post comments
TopRelease Notes for MPLAB® X IDE v5.15
February 20, 2019
...
13 What's New in v5.15
·Improved debugWire experience for AVR MCU family. Use Project Properties dialog, "mEDBG" category, "Communication" options category, "Interface " to select ISP or debugWIRE. MPLAB X IDE sets/clears configuration bits accordingly.
·Support for ATSAM MCUs using the Atmel-ICE tool family (Xplained boards).
14 Repairs and Enhancements in v5.15
...
MPLABX-3605
Debug Wire protocol on AVR devices does not work for MPLAB PICkit 4. For example, the ATmega328p. Programming uses a different protocol and is fine.
...
17 Known Issues
...
17.5 Device Feature Support Issues
AVR MCU Development
If you are developing with AVR devices, it is recommended that you upgrade to MPLAB X IDE v5.10 and MPLAB XC8 v2.05. Several AVR issues have been addressed in these versions. Alternately, you can use AVR_GCC.
...
AVR mapped program memory is not viewable on ATmega4808, ATmega4809 devices (MPLABXE-1813)
AVR ATmega4808 and ATmega4809 devices support a feature for efficient access of data used by the application which resides in the flash program space. Currently, MPLAB X IDE will not identify this space as a separate viewable memory.
Workaround: The data is viewable where the data begins in the program memory space.
...
17.7 IDE Specific Issues
The following are issues for the MPLAB X IDE.
...
MPLABX-4008
AVR-GCC Toolchain on a mounted drive in Linux does not get discovered with correct version information in MPLAB X IDE.
MPLABX-3991
Const declared variables display incorrect addresses in the watch window for AVR devices
MPLABX-3894
AVR STS instruction displayed incorrectly in multiple MPLAB X IDE displays:
·Program memory view
·Disassembly listing view
·Trace
...
MPLABX-3871
Using AVR 4809 and XC8 v2.00 the disassembly view seems to get lost when pausing in some projects. PC value is not lost during debugging. Continued debugging refreshes the disassembly view/reopening Disassembly view refreshes the display.
...
MPLABX-3840
BOOTEND and APPEND configuration values are not in the configuration window
ATmega4809
MPLABX-3839
Error in disassembly of rcall/call AVR instructions
[mega4809]
MPLABX-3836
When launching a Debug Wire debug session and the device signature is wrong, the launch is aborted. However, a dialog pops up asking if you want to disable Debug Wire even though you never entered a Debug Wire session.
...
MPLABX-3832
MPLABX START project import: EDBG selected does not stay selected
...
MPLABX-3725
LDS instruction generated has wrong operands in Disassembly view.
ATmega324PB
...
MPLABX-3678
On some projects, when first using MPLAB XC8 2.00 in MPLAB X v5.00, the build fails with No Chip name. The interim fix is to change the compiler drivers manually, under Tools>Options>Embedded>Build Tools>XC8 v2.00, C Compiler = xc8-cc, Assembler = xc8-cc, and then click OK.
8-bit MCUs
MPLABX-3657
Adding Library project for MPLAB XC8 v2.00 changes makefile to search for .hex/.elf in library project dist folder instead of .a file
8-bit MCUs
...
MPLABX-3615
The AVR-GCC installed with the Arduino IDE does not work with MPLAB X IDE
AVR devices
MPLABX-3595
Memory notification not occurring when notification happens on a config mem change for AVR devices.
AVR devices
...
MPLABX-3168
AVR Disassembler fails to disassemble MOVW
AVR devices
...
via MPLAB- X IDE | Microchip Technology (Downloads tab, Release Notes zip, Readme for MPLAB X IDE.htm)
edit: typo
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
Topvia What's New? - Developer Help
...
21 Feb 2019, 11:47
edit : 1st URL
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopMPLAB XC8 PRO Dongle is on sale at half price (was 1495USD)
MPLAB XC8 Compiler PRO Dongle License
via Dev Tool Deals | Microchip Technology
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopThe ones at Waveshare add to Microchip MPLAB PICkit 4 :
PICkit 4 - Waveshare Wiki
Eastern :
Aliexpress.com : Buy MPLAB PICkit 4 In Circuit Debugger fast and easy debugging and programming of PIC and dsPIC flash microcontrollers version 4.15 from Reliable Demo Board suppliers on Waveshare Development Kit Store
Western :
Microchip MPLAB PICkit 4 In-Circuit Debugger Programmer fast programming 614961951938 | eBay
IIRC, RJ25 is common for PIC.
Waveshare Development Kit Store - Small Orders Online Store, Hot Selling and more on Aliexpress.com (Products > Recommended > Programmers&Debuggers)
WaveShare | eBay Stores (MCU Tools > PIC)
https://www.microchip.com/Developmenttools/ProductDetails/PG164140#additional-summary
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
Topwith my experience using mplabx with pic controllers i think ill pass
If something can be read without effort then great effort has gone into its writing
- Log in or register to post comments
TopRelease Notes for MPLAB® X IDE v5.20
May 14, 2019
...
13 What's New in v5.20
[Device packs are now numerous with some updates ("across the board") and added functionality]
...
14 Repairs and Enhancements in v5.20
[mostly PIC and such]
...
17 Known Issues
...
17.6 Device Feature Support Issues
AVR MCU Development
If you are developing with AVR devices, it is recommended that you upgrade to MPLAB X IDE v5.10 and MPLAB XC8 v2.05. Several AVR issues have been addressed in these versions. Alternately, you can use AVR_GCC.
...
AVR mapped program memory is not viewable on ATmega4808, ATmega4809 devices (MPLABXE-1813)
AVR ATmega4808 and ATmega4809 devices support a feature for efficient access of data used by the application which resides in the flash program space. Currently, MPLAB X IDE will not identify this space as a separate viewable memory.
Workaround: The data is viewable where the data begins in the program memory space.
...
17.8 IDE Specific Issues
...
MPLABX-4400
AVR devices
Upon importing a START project for AVR devices into MPLAB X IDE, you may observe incorrect Program Memory size being displayed in the Dashboard. This is due to outdated information in the DFP that is included in the START project. To see correct memory values and percentages in the Dashboard, it is recommended to switch to the DFP supplied by MPLAB X IDE rather than what is included in the START project.
MPLABX-4008
AVR MCUs
AVR-GCC Toolchain on a mounted drive in Linux does not get discovered with correct version information in MPLAB X IDE.
MPLABX-3991
atmega324pb
Const declared variables display incorrect addresses in the watch window for AVR devices
MPLABX-3894
AVR
AVR STS instruction displayed incorrectly in multiple MPLAB X IDE displays:
·Program memory view
·Disassembly listing view
·Trace
...
MPLABX-3871
[ATmega4809]
Using AVR 4809 and MPLAB XC8 v2.00 the disassembly view seems to get lost when pausing in some projects. PC value is not lost during debugging. Continued debugging refreshes the disassembly view/reopening Disassembly view refreshes the display.
....
MPLABX-3840
ATmega4809
BOOTEND and APPEND configuration values are not in the configuration window
MPLABX-3839
[ATmega4809]
Error in disassembly of rcall/call AVR instructions
MPLABX-3836
ATmega328PB, other AVR debugWIRE devices
When launching a Debug Wire debug session and the device signature is wrong, the launch is aborted. However, a dialog pops up asking if you want to disable Debug Wire even though you never entered a Debug Wire session.
...
MPLABX-3725
ATmega324pb
LDS instruction generated has wrong operands in Disassembly view.
...
MPLABX-3615
AVR devices
The AVR-GCC installed with the Arduino IDE does not work with MPLAB X IDE
MPLABX-3595
AVR devices
Memory notification not occurring when notification happens on a config mem change for AVR devices.
...
MPLABX-3168
AVR devices
AVR Disassembler fails to disassemble MOVW
...
due to https://www.avrfreaks.net/forum/mplab-snap-we-are-not-amused#comment-2698696 (XMEGA added to MPLAB Snap, and, more)
MPLAB X IDE | Microchip Technology (Downloads tab)
edit : 'Device Support.htm'
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopMPLAB XC8 PRO Workstation is on sale through the end of August though I don't know the discount's monetary value;
oh ... the coupon code is BOGO...
This might be be a fit for the very small in SMB/SME though some teams have two embedded systems designers.
SW006021-2 - MPLAB XC8 PRO Compiler (Workstation License)
HPA for the 1y renewal of complete support.
SW006021-2H - MPLAB XC PRO HPA (Workstation License)
Dongle is perpetual though one might forget to pack the dongle for a road trip; dongle doesn't have HPA's priority support and the microchipDIRECT zero price shipping though does have updates.
Installing MPLAB® XC8 C Compiler - Developer Help
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopRelease Notes for MPLAB® X IDE v5.25
August 2, 2019
...
5 Java Platform and Operating System Direction
In order to align with industry standards and to continue to provide you the best experience when using MPLAB X IDE, we will be making the following changes to the IDE:
No Oracle® JRE license will be required to use any version of MPLAB X IDE.
...
7.2 Compilers
Current compiler versions supported are:
...
Atmel Compiler (1)
[Microchip AVR GCC 3.4.3 and subsequent]
...
C:\Program Files (x86)\Microchip\AVR_GCC
...
7.3 Compiler Add-On Licenses
MPLAB Code Coverage (SW006026-COV): As of MPLAB X IDE v5.25, code coverage is supported for compilers that support this feature, namely:
·MPLAB XC8 v2.10
·MPLAB XC16 v1.40
·MPLAB XC32 v2.30
7.4 Assemblers/Linkers
Current assembler versions supported are:
[AVRASM2 2.2.6 and subsequent]
8.1 Web Documentation – Internet Access Required
...
Register Help: For some AVR devices, you can access on-line data sheets, user’s guides and other support documentation from a Kit Window. In an IO View or Editor window, you can select a register and then click on the PDF icon to open the on-line help for that register.
14 What's New in v5.25
...
·MPLAB PICkit 4 Programmer-To-Go Beta Support: See the MPLAB PICkit 4 release notes for more information.
...
·MPLAB Code Coverage Support: Support in MPLAB X IDE for code coverage output generated by MPLAB XC C compilers in Free mode or with an MPLAB Code Coverage license (SW006026-COV). The first compiler versions with this feature are MPLAB XC8 v2.10, MPLAB XC16 v1.40, and MPLAB XC32 v2.30.
15 Repairs and Enhancements in v5.25
...
MPLABX-4400
Upon importing a START project for AVR devices into MPLAB X IDE, you may observe incorrect Program Memory size being displayed in the Dashboard. This is due to outdated information in the DFP that is included in the START project. To see correct memory values and percentages in the Dashboard, it is recommended to switch to the DFP supplied by MPLAB X IDE rather than what is included in the START project.
AVR devices
MPLABX-3892
MPLAB X IDE does not always recognize debuggers connected to a docking station which has a thunderbolt USB.
...
18.5 Device Feature Support Issues
...
AVR mapped program memory is not viewable on ATmega4808, ATmega4809 devices (MPLABXE-1813)
AVR ATmega4808 and ATmega4809 devices support a feature for efficient access of data used by the application which resides in the flash program space. Currently, MPLAB X IDE will not identify this space as a separate viewable memory.
Workaround: The data is viewable where the data begins in the program memory space.
...
18.7 IDE Specific Issues
...
MPLABX-4576
When using the Power Debugger, there are issues with Auto Power Toggle mode. Therefore, in IDE v5.25, only the following options are available in Project Properties, High Voltage Activation: (a) No High Voltage (b) Simple Pulse (c) User Power Toggle.
Most AVR and SAM MCUs
...
MPLABX-4008
AVR-GCC Toolchain on a mounted drive in Linux does not get discovered with correct version information in MPLAB X IDE.
AVR MCUS
MPLABX-3991
Const declared variables display incorrect addresses in the watch window for AVR devices
ATmega324PB
MPLABX-3894
AVR STS instruction displayed incorrectly in multiple MPLAB X IDE displays:
·Program memory view
·Disassembly listing view
·Trace
AVR
MPLABX-3871
Using AVR 4809 and MPLAB XC8 v2.00 the disassembly view seems to get lost when pausing in some projects. PC value is not lost during debugging. Continued debugging refreshes the disassembly view/reopening Disassembly view refreshes the display.
AVR 4809
...
MPLABX-3840
BOOTEND and APPEND configuration values are not in the configuration window
ATmega4809
MPLABX-3839
Error in disassembly of rcall/call AVR instructions
AVR 4809
MPLABX-3836
When launching a Debug Wire debug session and the device signature is wrong, the launch is aborted. However, a dialog pops up asking if you want to disable Debug Wire even though you never entered a Debug Wire session.
ATmega328PB, other AVR debugWIRE devices
...
MPLABX-3832
MPLABX START project import: EDBG selected does not stay selected
...
MPLABX-3725
LDS instruction generated has wrong operands in Disassembly view.
ATmega324PB
...
MPLABX-3678
On some projects, when first using MPLAB XC8 2.00 in MPLAB X v5.00, the build fails with No Chip name.
The interim fix is to change the compiler drivers manually, under Tools>Options>Embedded>Build Tools>XC8 v2.00, C Compiler = xc8-cc, Assembler = xc8-cc, and then click OK.
8-bit MCUs
MPLABX-3657
Adding Library project for MPLAB XC8 v2.00 changes makefile to search for .hex/.elf in library project dist folder instead of .a file
8-bit MCUs
...
MPLABX-3615
The AVR-GCC installed with the Arduino IDE does not work with MPLAB X IDE
AVR devices
MPLABX-3595
Memory notification not occurring when notification happens on a config mem change for AVR devices.
AVR devices
...
MPLABX-3168
AVR Disassembler fails to disassemble MOVW
AVR devices
Am assuming that AVR code coverage due to MPLAB XC8 v2.10 will be by the AVR simulator in MPLAB X v5.25
In 'Device Support.htm', AVR is tested (not beta) for :
The new AVR devices are in beta form for all tools except AVR simulator peripherals, MPLAB XC8, MPLAB ICD 4 :
What are the AVR28DA128 AVR32DA128 AVR48DA128 AVR64DA128 ?? | AVR Freaks
Assumptions :
WAG :
IDK :
MPLAB X IDE | Microchip Technology (Downloads tab)
AVR- and Arm- Toolchains (C Compilers) | Microchip Technology (current is Microchip AVR GCC 3.6.2)
MPLAB- XC Compilers | Microchip Technology (current is MPLAB XC8 v2.05)
Couldn't locate a link to SW006026-COV (MPLAB X Code Coverage)MPLAB Code Coverage
edit2 : Everspin Embedded MRAM | Everspin
edit3 : link (above) to thread about AVRDx
edit4 : strikethru
edit5 :
[TUT][SOFT] How to set up MPLAB-X IDE to use different compilers (Windows OS) | AVR Freaks
Using AVR-GCC with MPLAB-X Ide on LINUX | AVR Freaks
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopRelease Notes for MPLAB® PICkit 4
In-Circuit Debugger & Device (Production) Programmer
MPLAB® X IDE v5.25
DLL and Firmware versions:
August 2, 2019
...
5 What's New in v5.25
·Beta support for Programmer-To-Go (PTG) is available for 8 and 32-bit devices [PIC, PIC32]. See Beta Programmer-To-Go for information.
·See Header Support for a list of supported headers.
·Online help for MPLAB PICkit 4 has been updated regarding header support for v5.25. The PDF on the Microchip web page for the MPLAB PICkit 4 will be updated in a future release.
·Support for AVR-mode CDC implementation on MPLAB PICkit 4 and MPLAB Snap. See Virtual COM Port for more information.
6 Repairs and Enhancements Made in v5.25
None.
7 USB Port Setup
When MPLAB X IDE (v4.15 or greater) is installed the MPLAB PICkit 4 In-Circuit Debugger will automatically update any necessary device drivers upon connecting to USB.
8 Powering the Debugger and Target Board
The target board can be powered either from its own supply, or from the MPLAB PICkit 4 debugger.
9 Connecting the Debugger to the Target Board/Device
The AC102015 Debugger Adapter Board is a connectivity board that supports JTAG, SWD and ICSP protocols, useful for debugging legacy AVR with MPLAB PICkit 4.
10 Setting Up the Debugger and Target Board in MPLAB X IDE
To set up the MPLAB X IDE:
Launch MPLAB X IDE.
In MPLAB X IDE, create or open a project with the debugger selected as the Hardware tool. The debugger will automatically connect when code is executed. (To always be connected, see Tools>Options, Embedded, Generic Settings, “Maintain active connection to hardware tool”.) Also, the debugger can automatically detect if it has been disconnected/reconnected and if the target has been disconnected/reconnected.
The debugger will now be ready for use.
11 Header Support
MPLAB PICkit 4, ICD 4 Header Support
AC162061 (PIC16F690 only)
AC244023 (MCV20USB not supported yet)
AC162055
AC244024
AC162066
AC162056
AC244051
AC244052
AC162057
AC162083 (PIC12F609 and PIC16F616 for ICD4 only)
Also check https://www.microchip.com/mplab/mplab-x-ide-debug-features-by-device.
12 Beta Programmer-To-Go
...
12.1 Limitations for Beta Programmer-To-Go
...
2. Devices Supported:
- PIC10
- PIC12
- PIC16
- PIC18
- PIC32
...
4. In Programmer-To-Go mode, if the target is powered, no addition power is needed for the MPLAB PICkit 4 to operate. The target board must be capable of providing 350 mA of power for the PICkit 4 tool to operate properly. If the target board cannot provide enough power, you will need to provide power directly to the PICkit 4 through its USB port with either a power supply, computer, or USB power bank. [or USB isolator]
...
6. [100 ohm series resistor on MCLR]
...
13 Virtual COM Port for AVR Devices
The Virtual COM Port is a general-purpose USB serial bridge between a host PC and a target AVR device.
The AVR-mode CDC implementation on the MPLAB PICkit4/SNAP Virtual COM port supports:
·Baud rates in the range 1200 bps to 500kbps
·Only 8-bit character format
·No hardware flow control
·One or two stop-bits
IMPORTANT NOTE: Connecting to the Virtual COM port from a terminal emulator will enable pins 7 and 8 on the MPLAB PICkit4/Snap header as TX and RX pins. This functionality is independent of the debugger functionality. You must ensure that you do not use CDC at the same time as a debug interface which also needs those pins, for example JTAG or SWD.
14 Device Programming Considerations
...
14.2 For Non-CodeGuard Security Devices
When programming these devices, bulk erase commands should be issued between successive programming operations, i.e., erase, then program, then erase, then program, etc. Therefore, Microchip advises against multiple-stage programming sessions which may fail to verify. For example, you should NOT do the following sequence with these devices:
15 Known Problems
The following is a list of known problems. For information on common problems, error messages and limitations please see Troubleshooting in the on-line help file for the MPLAB PICkit 4 debugger.
15.1 Communications
If you do not use the included cables, make sure the cables you do use are: (1) not longer than 6 inches [15 cm] for standard communications or errors could result and (2) USB 2.0 compliant if you will be using USB 2.0 communications. If you are using a hub, it must also be High Speed USB 2.0 compliant.
15.2 Debugging Issues
General debugging errors may occur while debugging at higher oscillator speeds. Changing to a slower oscillator speed like internal FRC without PLL may improve the debug experience.
...
15.3 General Issues
Using the USB connection on a laptop PC with hibernate mode enabled will lock up the debugger if hibernate mode is entered. Unplug the USB cable from the MPLAB PICkit 4 debugger and then plug the cable back in to resume debugging. You may want to disable hibernate mode while using the debugger. From Control Panel, select "Power Options" and disable hibernate mode.
Virus protection software can interfere with USB driver installation. If your development tool is not operational and you have tried reinstalling the USB drivers, consider disabling your virus protection software and reinstalling the USB drivers again.
SPI001-113: SPI misses SDI input when single-stepping with freeze in debug enabled.
...
15.4 Tool SSRs (System Service Requests)
The following is a list of issues that are being tracked for this tool.
...
PK4-31
The firmware update will fail with either the MPLAB PICkit 4 or the MPLAB Snap ICD tool, when using:
- USB Full-speed port
- USB Full-speed hub
- USB Full-speed isolator
Workaround:
The tool would have to be plugged into a USB Full-speed or USB SuperSpeed USB port/hub/isolator to allow the firmware update process to complete successfully.
After the firmware update completes, the tool can then be plugged back into a USB Full-speed port/hub/isolator.
...
15.6 Engineering Technical Notes (ETNs)
The following ETNs are related to the MPLAB PICkit 4 in-circuit debugger. Please see the product webpage for details.
None.
...
17 Number of Hardware Breakpoints per Device
To see the number of breakpoints supported for your device and the number of breakpoints used in your project, use the Dashboard window (Window>Dashboard).
To see breakpoint information for all supported devices, use either:
-Hardware Tool Debug Features by Device– local HTML file
Note: For PIC18FxxJ devices, there is a limitation that only 1 data capture is available.
MPLAB PICkit 4 In-Circuit Debugger
MPLAB X IDE | Microchip Technology
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopHow come MPLAB "fails to resolve" symbols like uint8_t, PORTMUX, and USART_CHSIZE_gm, all of which should be defined in include files via <xc.h>
(and in fact the program compiles just fine; it's only the IDE that is unhappy with the symbols.)
- Log in or register to post comments
Top>it's only the IDE that is unhappy with the symbols
It hasn't been happy for years. I normally use another code editor while mplabx does the compiling. Either editor will see changes made and reload. If I'm lazy, I'll use mplabx to get to the error source (click link in error output), make changes there, recompile, then back to the good editor for most of the work.
Google these-
netbeans unable to resolve identifier
disable Netbeans Code Assistance
It may help. It may not.
- Log in or register to post comments
Topat the bottom of Application Launcher Plugin - Developer Help
Notepad++ Home
edit : Scooter Software: Home of Beyond Compare
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopAh, that's OK then. I was just wondering if I had some mis-configuration somewhere...
(Although it would have been one of the things that might sway me toward an IDE editor. Sigh.)
Thanks
- Log in or register to post comments
TopMPLAB- XC Compilers | Microchip Technology
What are the AVR28DA128 AVR32DA128 AVR48DA128 AVR64DA128 ?? | AVR Freaks
edit : 1st URL - https
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
Topvia
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopSo I tracked this down, since it was damnably inconsistent.
1) Chip-specific symbols (like USART_CHSIZE_gm )
There are actually two problems here:
#elif defined (__AVR_ATtiny11__)
# include <avr/iotn11.h>
#elif defined (__AVR_M3000__)
# include <avr/iom3000.h>
#elif defined (__AVR_DEV_LIB_NAME__)
# define __concat__(a,b) a##b
# define __header1__(a,b) __concat__(a,b)
# define __AVR_DEVICE_HEADER__ <avr/__header1__(io,__AVR_DEV_LIB_NAME__).h>
# include __AVR_DEVICE_HEADER__
#else
# if !defined(__COMPILING_AVR_LIBC__)
# warning "device type not defined"
This is apparently (and not surprisingly) not understood by whatever logic parses the source in the editor.
If you edit the source of io.h to add:
in an appropriate place, it will get happier (after you convince it to reparse everything.)
At least, if you're using avr-gcc. If you're using xc8, there's an additional problem. The compile command is something like:
"/Applications/microchip/xc8/v2.05/bin/xc8-cc" -mcpu=ATmega4809 -c -x c -D__ATmega4809__ -mdfp="/Applications/microchip/mplabx/v5.25/packs/Microchip/ATmega_DFP/2.0.12" -Wl,--gc-sections -Os ... main.c
Which works fine, but the IDE doesn't recognize -mdfp switch as creating a new include path, so when io.h ends up doing the #include <avr/iom4809.h> the IDE doesn't find it, so it can't see the 4809-specific defines. Adding an explict include path for the pack include directory fixes it (as does copying the .h to the "normal" avr directory.)
Grr. So - understood, might have workarounds, might be fixable...
The uint8_t issue is somewhat similar. It's not a problem using avr-gcc, but using xc8, the stdint.h file that gets included in a wrapper that the IDE parser doesn't seem to deal with very well:
#if __STDC_HOSTED__
:
# include_next <stdint.h>
#else
# include "stdint-gcc.h"
#endif
Perhaps it doesn't understand "include_next"?
- Log in or register to post comments
Top(huh. I wonder if this sort of parsing difficulty is what has driven the "Atmel Start" "style" of copying all the relevant include files to the project directory?)
- Log in or register to post comments
TopThe two(*) source browsers I find to understand pretty much everything are Intellisense in Visual Studio and the browser in Eclipse. Most others (like VassistX in AS7) have some things (like pre-pro conditionals) they can't seem to cope with.
(* Oh and SourceInsight but that's quite a costly option).
- Log in or register to post comments
TopVisual Studio Code - Code Editing. Redefined
Custom Commands | Source Insight 4.0
Working Outside of MPLAB® X IDE - Developer Help
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
Topgchapman!..haha, sometimes I wonder if you are a real human...jk ;-)
- Log in or register to post comments
TopI guess we will never know... however, I have seen the gchapman entity pass Turing tests occasionally
- Log in or register to post comments
TopI've had my fill of Turing machines in a formal methods course (a challenging computer science course)
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopWell, "#include_next" seems to be a gcc "extension", and I had never heard of it before (and yet, I knew instantly what it would do! Well-named!)
So it seemed an obvious suspect.
Having lived through at least one massive change in the way the pre-processor works, I'm inclined to be a bit lenient on things that don't quite get it right.
(although at this point, you'd think that IDEs would just run the actual compiler whenever they detected a change that might affect symbol values?)
- Log in or register to post comments
TopCode Coverage Overview - YouTube (4m1s)
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopFor DMCI, link a USB UART to a UART.
MPlab X under Linux: DMCI not showing my serial ports | Microchip
Data Monitor and Control Interface | MPLAB X | Developer Help
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopI believe include_next only works with <file.h> not "file.h".
Apparently I am wrong: ref.
A few years ago I wrote a C preprocessor and swore this was an issue. Must have been something else.
- Log in or register to post comments
Topedit : another instance
https://www.avrfreaks.net/forum/where-can-i-find-atmega4809h-file-register-definitions#comment-2763436
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopI discovered (the hard way) that if you modify the "memory settings" dialog of the avr-ld options in your MPLAB project:
MPLAB will happily multiply those by two for you, to make up for the whole "Atmel likes word addressing, Gnu likes byte addressing" thing, and the actual link
statment will end up being:
(Edit: oops. Atmel Studio does this too. I guess I spend too much time using the CLI ...)
- Log in or register to post comments
TopMPLAB® Code Coverage Overview - Developer Help
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
Topupdated today :
Programmer To Go Options - Developer Help
edit :
Programmer To Go BETA - Developer Help
edit2 :
PICkit™ 4 Programmer-to-Go Webinar - YouTube (3m8s)
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopMPLAB X IDE | Microchip Technology
'Device Support.htm' :
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopAm unsuccessful in locating ETN37.ETN #37 MPLAB® PICkit 4 VPP Overshoot Modification
MPLAB X IDE | Microchip Technology
MPLAB PICkit 4 In-Circuit Debugger
MPLAB® PICkit 4 (PG164140) In-Circuit Debugger/Programmer - Developer Help
edit :
Engineering Technical Notes (ETNs) - Developer Help
edit2 : ETN-37
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
TopWoo hoo!
- Log in or register to post comments
TopUm. Has anyone tried this yet? I connected my PICKit 4 to a scope (no actual device), and tried assorted UPDI-requiring things (since we're interested in the exact timing of that 12V pulse...)
I don't see any 12V pulses at all... In fact, I see the same waveform with and without the HV feature enabled.
(this is on a Mac. Maybe they forgot something on the Mac?)
- Log in or register to post comments
TopThe necessary FW upgrade for PICkit4 was not included in the release.
- Log in or register to post comments
TopWhile waiting, you can play around with the vcom instead. No Woo hoo for that either, I'm afraid to say. Although the disappointment was expected.
None of these debuggers want to keep vcom going while programming. Start to program, vcom disconnects, whatever terminal you had going quits, programming done, vcom appears again via usb enumeration, fire up the terminal again to connect. Repeat for every time you program the mcu. Maybe not so bad if you only program once a day, but I tend to program until I get it right for whatever problem is at hand, which ends up quite often.
The ?edbg variations are the same, except half the time you also lose the programmer/debugger which requires a power cycle. I was hoping with the high power engine under the hood of the snap, that the vcom would stay up. I'm not quite sure why they cannot keep the vcom going during programming.
The snap is a good programmer/debugger, though. I have my mega4809 nano board connected to the snap (1k pullup on updi), using the 'AVR Toolchain' compiler, and have an Omega2 linux module close by to do the uart duties (a bash script on the omega where I can just ssh into a terminal that has serial io redirected to the terminal). I have been using that combo for a few weeks, and have not had a single problem. I can keep the ssh connection up as long as my wifi router is willing stay up, the snap always works (never a power cycle needed), and the 'AVR Toolchain' is so fast at compiling I often wonder if anything happened (xc8 is not slow, but there is a difference that is noticeable, probably due to the need for xclm to compute a hash every time one of the guarded executable's run). I also have a pic32mm with the same setup (another Omega2, using uart at 1Mbps), and that is the same- always good, always fast, never a problem.
If you struggle with a ?edbg variation, you may want to look into spending $15 for a snap. I think its worth it (and you can program a pic that does not require hv, pic32, and I suppose their arm mcu's, if ever wanted).
- Log in or register to post comments
TopMPLAB PICkit 4 Nov'19 | AVR Freaks
https://www.avrfreaks.net/forum/mplab-snap?page=2#comment-2787826
"Dare to be naïve." - Buckminster Fuller
- Log in or register to post comments
Top"oops."
In general, or just for MacOS? (I can imagine both the "of course the same ancillary files are used for all OSes!" AND "The content for each OS is customized for that OS" scenarios.)
MPIPE *did* update my firmware to 1.6.87
Edit: and alas, after installing 5.30 on a PC as well, it did not offer to upgrade the firmware any further. :-(
- Log in or register to post comments
TopPages