Menu

Release Candidate RC42

Anobium
2021-02-09
2021-05-07
1 2 > >> (Page 1 of 2)
  • Anobium

    Anobium - 2021-02-09

    This release candidate is NOT a normal few tweaks or changes. This has a totally new capability - yes, there are tweaks and fixes.

    This release introduces PIC-AS support.

    PIC-AS support is a ZERO impact change if you do not need use MPLAB-X for teaching, debugging or support (see below).

    PIC-AS support is a major change. A lot of work.

    So, if you are not using MPLAB-X for teaching, debugging or support then this is intended to have zero impact. Therefore, read no further.

    And, if you are a AVR, LGT, PIC10, PIC12 user.. this is release contains bug fixes but PIC-AS is not supported yet. So, for you.. just consider the release as a bug fix release.

    Evan


    Microchip Technology recently released a new assembler for their PIC and AVR microcontroller devices.
    The new compiler called the MPLAB XC8 PIC Assembler, is meant to replace the now decades old MPASM assembler. Commonly called PIC-AS

    Why does Great Cow BASIC need PIC-AS support ?

    • Teaching aid - cannot do this as Microchip only support PIC-AS
    • Debugging - cannot debug an ASM source files as Microchip only support PIC-AS
    • Support from Microchip - cannot get support from Microchip as they only support PIC-AS
    • AND... MPASMx is not supported by new chips

    A few insights.

    • PIC--AS changes are isolated from existing PIC, AVR or LGT code
    • PIC--AS is additive to the Great Cow BASIC compiler
    • PIC--AS is essentially a translator that produces the PIC-AS source file.
    • PIC--AS source file is called .S
    • PIC--AS required the co be installed (this is NO different from ATMEL Studio, MPASMx etc)
    • PIC--AS support has to be enabled by a user - by installing the Microchip XC8 PIC-AS compiler and then editing the USE.INI file.

    How do enable PIC-AS ?

    See the video below. But, it is as simple as:

    • Install Great Cow BASIC
    • Install the Microchip XC8 PIC-AS compiler
    • Edit the USE.INI to 1) ensure the directory for PIC-AS is correct 2) set the assembler = pic-as

    Now Great Cow BASIC will generated .ASM and .S PIC-AS source.

    If want to use with MPLAB-X

    • Install MPLAB-X
    • Create a project, selecting the Microchip XC8 PIC-AS compiler as the compiler
    • As the .S PIC-AS source.
    • Compile or Compile for debugging etc.

    See this video for the full details. It is a long video but this is a huge subject!

    Evan


    Key moments in the video

    Why do this? https://youtu.be/UXHbEX9ImPA?t=18
    What has changed ? https://youtu.be/UXHbEX9ImPA?t=128
    How to install the release? https://youtu.be/UXHbEX9ImPA?t=379
    How to enable PIC-AS? https://youtu.be/UXHbEX9ImPA?t=649
    How to change USE.INI ? https://youtu.be/UXHbEX9ImPA?t=812
    What the changes between .ASM and .S ? https://youtu.be/UXHbEX9ImPA?t=975
    How to create a MPLAB-X project? https://youtu.be/UXHbEX9ImPA?t=1027
    Summary https://youtu.be/UXHbEX9ImPA?t=1433


    Changes Since RC38

    924   New     TBL+        Updated version of tinymultibootloader+.exe to 14.6.x.x
    925   Fix     Compiler    Small compiler fix: correction to EEProm address for table write 18FxxQxx operations.[1171]
    926   Fix     Compiler    Correction to 18f CONFIG in ASM to ensure the line is less than 200 characters.[1171]
    927   Fix     Compiler    Added syntax error to delay_ms() and delay_us()[1171]
    928   New     DAT         Added support for 18FxxQ40 PIC chips.
    929   New     Compiler    PIC-AS non operational support [1172]
    930   New     Compiler    First commit of PIC-AS support.[1173]
                  -Supported by ini file
                  [gcbasic]
                  assembler = PIC-as
                  [tool=pic-as]
                  type = assembler
                  command = C:\Program Files\Microchip\xc8\v2.31\pic-as\bin\pic-as.exe
                  params = -mcpu=%ChipModel% "%Fn_NoExt%.S" -misa=std -msummary=+mem,-psect,-class,-hex,-file,-sha1,-sha256,-xml,-xmlfull -Wl -mcallgraph=std -mno-download-hex -o"%Fn_NoExt%.hex" -Wl,-Map="%Fn_NoExt%.map" -Wa,-a
                  Install PIC-AS.EXR from Microchip website. And then change the 'command' above to the installation directory.
                  18F tested as passed
                  16F - many issues with PIC-AS. Tickets open with Microchip.
                  Assembly.bi - change ASMTIDY -no impact to existing code.
                  Processor.bi - Added label attributes
                  variables.bi - Added GetSFRBitValue and GetReversePICASIncFileLookupValue to resolve GCB and PIC-AS using different namespaces for registers
                  gcbasic.bas - Added label attributes and updated WriteAssembly() to handle new format of .S source files - this retains the ASM as-is. :-)
    
    931  New      SYSTEM      Added PFMRead and Write[1173]
    
     

    Last edit: Anobium 2021-02-10
  • Anobium

    Anobium - 2021-02-10

    Update. I will be posted a later version of RC39 for PIC-AS support.

    • Fixed an issue where the .DAT file caused a config mismatch in PIC-AS. This condition was a latent issue (been there for years). Resolved by fixing the DAT generator.
    • Updated system.h. The incorrect system.h was in the build.

    PIC-As Test results.

    All passed 16F18855: ..\Demos\vendor_boards\mplab_xpress_board_pic16f18855
    All passed 18F16Q41: Demos\vendor_boards\microchip_low_pin_count_demo_board\pickit2_board\18f16q41


    12F and 10F not tested yet.

     
    • Anobium

      Anobium - 2021-02-10

      And, AVR is not yet supported with respect to PIC-AS

       

      Last edit: Anobium 2021-02-10
  • Anobium

    Anobium - 2021-02-10

    Posted new updates to RC39. See https://sourceforge.net/projects/gcbasic/files/Release%20Candidates/GCB_Installer-v0.98.07%20RC39.exe/download replace what you have and try again.....

    Changes include new .dat to resolve latent issues, new warning message for when using PIC-AS that is not supported.

    I have also regened all the DAT files and then rerun the PICInfo database as this was out of date with the new fixes.

     
    • Anobium

      Anobium - 2021-02-11

      RC39 Patch

      See https://sourceforge.net/projects/gcbasic/files/Release%20Candidates/Patches/
      Copy updated compiler to your installation.

      11/02/2021

      Added new reverse lookup to validate CONFIG.
      
      This resolves the issue where PIC-AS has a case sensitive config. Example shown below - where nLPBOR is case sensitive.
      
          CONFIG nLPBOR=OFF                               ;C1 Reverselookup NLPBOR=OFF 
      
          The .S now shows the transformation method C1 = a reverse lookup match, C2 = no reverse lookup match, therefore use the Great Cow BASIC specified option.
      
      .S now shows two reverse lookup files, example is:
      
      ; Reverse lookup file(s)
      ; C:\Program Files\Microchip\xc8\v2.31\pic\include\proc\pic18f24k50.inc
      ; C:\Program Files\Microchip\xc8\v2.31\pic\dat\cfgmap\18f24k50.cfgmap
      

      Enjoy

       

      Last edit: Anobium 2021-02-11
  • Anobium

    Anobium - 2021-02-11

    RC39 Patch

    See https://sourceforge.net/projects/gcbasic/files/Release%20Candidates/Patches/
    Copy updated compiler to your installation.

    11/02/2021

    Added non-destructive handler to resolve destructions of config items for the following chips.  Basically means.. things in GCASM had an error and this resolves.
    
    18lf24k50
    18f25k50
    18f45k50
    18lf2450
    18lf2455
    18lf2458
    18lf24k50
    18lf2550
    18lf2553
    18lf25k50
    18lf4450
    18lf4455
    18lf4458
    18lf4550
    18lf4553
    18lf45k50
    
     
  • Anobium

    Anobium - 2021-02-14

    Further improvements.

    944  Fix      DAT         Correction of long standing [ASMConfig] section where the setting was being truncated.[1178]
                              NOW:
                              BBSIZE=BBSIZE_512
                              BOREN=SBORDIS
                              BORV=VBOR_2P45
                              CLKOUTEN=OFF
                              WAS:
                              BBSIZE=512
                              BOREN=SBORDIS
                              BORV=2P45
                              CLKOUTEN=OFF
    945           Compiler    Improved warning of PIC-AS support and removal of PIC-AS ASM from legacy ASM code.
    946           PWM16       Improved PWM16.h library.
                              PWM16 library was developed for the 12&16F157x chip the constant is set to ChipPWM16TYPE=1.
                              The new 18FxxQxx are set to ChipPWM16TYPE=2.  As ChipPWM16TYPE=2 are not tested the library and therefore a warning is issued.
    
                              All .dat files updated.
    
     
  • Randall Young

    Randall Young - 2021-02-14

    Wow! This is a ton of work, kudos!

     
  • Anobium

    Anobium - 2021-02-14

    Another change.

    I had forgot to resolve the USE.INI issue. The release will replace your USE.INI

    @RC38.05
    947           Installer   Installer now replaces USE.INI to ensure setup is stable.
                              Later release(s) 'may' edit USE.INI to update with new information only.
    
     
  • stan cartwright

    stan cartwright - 2021-02-17

    Why replace USE.INI default? What was wrong with it before?
    It was posted it was requested.
    gcb getting more complicated. lgt having to be sorted again cos disappeared in ini.

     
    • Anobium

      Anobium - 2021-02-17

      Use.ini contains the setup and you programmers.

      The reason LGT disappeared was because use.ini was not replaced. In the future it will be replaced to prevent this from happening in the future.

       
  • stan cartwright

    stan cartwright - 2021-02-18

    You know best. I don't know what ini is, like chipdata, stuff you don't really want to mess with.
    Do you recommend saving working ini. before updating latest rc, then copying it back?

     
    • Anobium

      Anobium - 2021-02-18

      I do not recommend copying an old ini back into the folder.

      There are new settings and programmers that will be lost when you copy old ini over a rc39 ini.

       
  • stan cartwright

    stan cartwright - 2021-02-18

    Evan, I got the vibe you took it out cos not sorted completely.
    Let us least try the device as it's fast for a pic,
    Like you said we now have lgt328!.... then remove it.
    Get more avr users to try lgt328 and feed back.
    They seem cheap for a usb board with voltage reg and xtal
    in an arduino nano package.

    A list of not sorted lgt stuff, like runs on arduino nano,16
    but not lgtnano,16 might get help.

     
  • Anobium

    Anobium - 2021-02-18

    LGT was not removed. You probably lost the programmer as the use.ini was not updated on your system.

    There is no list of what is not supported by LGT. The issue with Touch is not an LGT issue but a touch sensor issue. I emailed you a set of tests to figure out the touch sensor performance limitations.

     
  • Anobium

    Anobium - 2021-02-23

    RC40

    Adds new chips, improves support for PIC-AS by adding support for large 16F programs, adding 10F support and adding an ability to 'patch' the config if required.

    See https://sourceforge.net/projects/gcbasic/files/Release%20Candidates/ folder.

    Enjoy

    @RC40         Compiler    Initial PIC-AS for 16f large programs[1180]
    948           DAT         Added new MCUs[1179]
                              PIC16F15213
                              PIC16F15214
                              PIC16F15223
                              PIC16F15224
                              PIC16F15225
                              PIC16F15243
                              PIC16F15244
                              PIC16F15245
                              PIC16F15254
                              PIC16F15255
                              PIC16F15256
                              PIC16F15274
                              PIC16F15275
                              PIC16F15276
    949           Compiler    Small update to use the ini file to handle corrections between ASM and PICAS.[1181]
                              The ini file will search and replace config(s)  Example shown below:
                                [patch=asm2picas]
                                desc = PICAS correction entries. Format is STRICT as follows: Must have quotes and the equal sign as the delimeter. PartName +COLON+"BadConfig"="GoodConfig" Where BadConfig is from .s file and GoodConfig is from .cfgmap file
                                16f8x:"intrc = IO"="FOSC=INTOSCIO"
                                12f67x:"intrc = OSC_NOCLKOUT"="FOSC=INTRCIO"
                                16F69x:"INTOSCIO = "="FOSC=INTRCIO"
    950           Compiler    Added Support for 10Fxx chips[]
    
     

    Last edit: Anobium 2021-02-23
  • Anobium

    Anobium - 2021-02-27

    RC42 posted.

    more updates and a new S&7789 GLCD driver.

     
  • mkstevo

    mkstevo - 2021-02-28

    The Linux distribution doesn't include the "Help" folder. Is this intentional, or an oversight? I have been using the .chm file and just noticed after updating yesterday it isn't there.

     
    • Anobium

      Anobium - 2021-02-28

      As the build process is automated. I just push an icon... I would say this Help was always missing.

      I can add to the automated process. Add all formats?

       
  • mkstevo

    mkstevo - 2021-02-28

    Well, I can pull from the Windows .exe if needed. I see the .chm file I have is dated May 2018 so I guess it hasn't disappeared, more that I never noticed it wasn't there.

    I do use it though, I finally got context sensitive help working and find it really useful. All formats can't take up that much space surely?

    So, if it isn't any hardship, all formats, yes please.

     
    • Anobium

      Anobium - 2021-02-28

      It is no problem. All formats.

       
  • mkstevo

    mkstevo - 2021-04-06

    When I update my installation I often find that things that were working, stop working. More often than I'd like, fonts and colours get replaced with default ones and any custom toolsets I've added to the IDE menu(s) get lost. This leaves me very reluctant to upgrade. The last time I upgraded from RC09 to RC42 (I think) at work, it took me well over 4 hours to get the compiler to run again without error, and that time I thought I would be clever and install the whole new installation initially, then copy back the .ini files and my custom scripts later, once everything else was working. This all having been working perfectly up until the point I tried to upgrade.

    Is there a more obvious, clever way of managing updating that I'm missing? Something that will preferably maintain my custom files, my commands for using the NSDSP programmer and the like?

    It puts me off upgrading and so I tend to stick with what is working as I can't face the turmoil I seem to suffer when I do upgrade.

     
  • Anobium

    Anobium - 2021-04-06

    We are at RC45.

    The process can be improved - I agree.

    There are a few ini files that need to be managed. This is not a new or unique issue to this install process but we need someone to figure out all the install options and how to manage the new/update process.

    As we use InnoSetup for Windows then I would imagine that is all resolveable.

    But, this is not a piece of work that I would want someone to pickup and run with. InnoSetup is well documented and the Great Cow BASIC setup file is avaialble.

     
  • mkstevo

    mkstevo - 2021-04-06

    At one time, there was a "Minimal" install option. As I recall, that contained only the necessary updated files. That hasn't been updated recently though.

    I realise that would not suit many people who might prefer the fully automated install package, but I always found it vastly more manageable.

    Is there any chance that a very, very minimal, zipped file could be made available which had only the "new" files along with any specific support files required by any new release?

    Or a simple zipped file (with everything in it) as opposed to a full installer, with a list of updated files since the last release so I could pick them out myself and move them into my installation without performing a blanket replacement of everything?

    Or could a description of (only) the updated files be included in the installer? Then I could install to a "dummy" folder, pick out the updated files, move them into place manually, then delete the new "dummy" installation.

    I would find myself holding off updating much less if I thought it wasn't going to stop me working for a number of hours every time I did update. At work, I don't have that time to put aside for updating, so am even less likely to update unless I absolutely have to.

     
  • Anobium

    Anobium - 2021-04-06

    These are all the questions that need to be answered.

    Great Cow BASIC is changing and improving as more developers add more fumctionality. The last year has had 45 major updates... change will be constant.

    Each release needs to be impacted for what the end state needs to look like. The starting point can be anything from a new install to any state.

    This is NOT the case of what changed. There may be changes within in INI files that have changed.

    The easy way to resolve would be a configurator. There would be a known end state and the configurator would inspect and impact everything.


    Re a list of what changed. The releasenote.txt has a list of all the functional changes, but, it is very safe to assume 100% of the compiler files change per release. We dont change the supporting programmers, but, PPS is typically 100% changed.

    I no longer provide the minimal installers as the tool chain is too large to manage. It takes over 12 hours to build and test a release - just the packaging not the functional changes.


    So, what changes that impacts the users? The ini files. Anyone playing with the batch files or using batch files should stop. There is no need to change any batch file. Change the ini's.

    InnoSetup can assess ini files. And, a configurator would resolve differences.


    My rules. Install and use. Use Programmer Preferences to make my programmer changes. NSProg and PK+ just need the files dropping into the default folders. I personally so not change the IDE.

     
1 2 > >> (Page 1 of 2)

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.