Adapt bootloader for 12F1840 devices
authorJustin Mitchell <justin@discordia.org.uk>
Tue, 1 Oct 2013 11:56:31 +0000 (12:56 +0100)
committerJustin Mitchell <justin@discordia.org.uk>
Tue, 1 Oct 2013 11:56:31 +0000 (12:56 +0100)
Fix bug in default port name in cli

cli/Makefile
cli/boot.c
mybootload.X/main.asm
mybootload.X/nbproject/Makefile-genesis.properties
mybootload.X/nbproject/Makefile-impl.mk
mybootload.X/nbproject/Makefile-variables.mk
mybootload.X/nbproject/configurations.xml
mybootload.X/nbproject/private/configurations.xml

index 6566a12..3bf6538 100644 (file)
@@ -8,9 +8,9 @@ WINDOWS=0
 ifeq ($(WINDOWS),1)
 PREFIX=i686-w64-mingw32-
 SRC += serial-win.c
-CFLAGS += -static -mwindows -DDEFPORT="COM4:"
+CFLAGS += -static -mwindows
 else
-CFLAGS += -fPIC -DDEFPORT="/dev/ttyUSB0"
+CFLAGS += -fPIC -static #-m32
 SRC += serial.c
 endif
 
index 087b47a..8a522ab 100644 (file)
 
 #define BAUD_RATE 19200
 
-#define STRINGIFY(n) #n
-
-#ifdef DEFPORT
-#define PORT_NAME STRINGIFY(DEFPORT)
+#ifdef _WIN32
+#define PORT_NAME "COM4:"
 #else 
 #define PORT_NAME "/dev/ttyUSB0"
 #endif
index 9df5743..9425e29 100644 (file)
@@ -2,18 +2,7 @@
 
     errorlevel -302
 
-#include "p16f1455.inc"
-
-; CONFIG1
- __config _CONFIG1, 0xFCC
-;; __CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_SWDTEN & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
-; CONFIG2
- __config _CONFIG2, 0x16CF
-; __CONFIG _CONFIG2, _WRT_OFF & _CPUDIV_NOCLKDIV & _USBLSCLK_48MHz & _PLLMULT_3x & _PLLEN_DISABLED & _STVREN_ON & _BORV_LO & _LPBOR_ON & _LVP_OFF
-
-
-#define max_flash 0x2000
-#define row_size  32
+#include "cpuselect.inc"
 
 ; 16F1455 errata says self-program only works <= 4MHz clock
 xtal    EQU 4000000
@@ -87,15 +76,20 @@ StartBoot
 ;    banksel TRISC
 ;    BSF     TRISC,5   ; RC5 as input
 ;    BCF     TRISC,4   ; RC4 as output
-    banksel PORTC
-    CLRF    PORTC
+    banksel SERIAL_PORT
+    CLRF    SERIAL_PORT
+    
+#ifdef SERIAL_ANSEL
+    banksel SERIAL_ANSEL
+    CLRF    SERIAL_ANSEL
+#endif
 
-    BTFSC   PORTC,5   ; RC5 is Clear (break state) carry on
+    BTFSC   SERIAL_PORT,SERIAL_RXPIN   ; RC5 is Clear (break state) carry on
     BRA     AppVector   ; Was not clear, launch app instead
 
     ; Lets start the bootloader properly
     banksel OSCCON
-    MOVLW   b'00110100'
+    MOVLW   OSC_4MHZ
     MOVWF   OSCCON      ; 4Mhz clock mode
     BTFSS   OSCSTAT,HFIOFR
     BRA     $-1         ; wait until oscillator is ready
@@ -135,8 +129,8 @@ SetBaud
     CALL    SendByte
     
     ; Wait for PC to drop the break condition
-    banksel PORTC
-    BTFSS   PORTC,5
+    banksel SERIAL_PORT
+    BTFSS   SERIAL_PORT,SERIAL_RXPIN
     BRA     $-1
 
     ; Transmit device ID
index 9ef204a..465fbda 100644 (file)
@@ -1,8 +1,11 @@
 #
-#Fri Sep 27 17:16:44 BST 2013
+#Tue Oct 01 12:20:41 BST 2013
+default.languagetoolchain.version=5.52
+conf.ids=default,12F1840
 default.languagetoolchain.dir=/opt/microchip/mplabx/mpasmx
+default.com-microchip-mplab-nbide-toolchainMPASMWIN-MPASMWINLanguageToolchain.md5=dc1e238caba4e98e3e2f2da7006384df
+12F1840.languagetoolchain.dir=/opt/microchip/mplabx/mpasmx
 com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=0d2b1469ad71adb787c711a416386331
-default.languagetoolchain.version=5.52
+12F1840.com-microchip-mplab-nbide-toolchainMPASMWIN-MPASMWINLanguageToolchain.md5=dc1e238caba4e98e3e2f2da7006384df
+12F1840.languagetoolchain.version=5.52
 host.platform=linux
-conf.ids=default
-default.com-microchip-mplab-nbide-toolchainMPASMWIN-MPASMWINLanguageToolchain.md5=dc1e238caba4e98e3e2f2da7006384df
index 7482b42..d0f4dd0 100644 (file)
@@ -27,11 +27,11 @@ CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
 PROJECTNAME=mybootload.X
 
 # Active Configuration
-DEFAULTCONF=default
+DEFAULTCONF=12F1840
 CONF=${DEFAULTCONF}
 
 # All Configurations
-ALLCONFS=default 
+ALLCONFS=default 12F1840 
 
 
 # build
@@ -46,12 +46,14 @@ ALLCONFS=default
 # clobber
 .clobber-impl: .clobber-pre .depcheck-impl
            ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default clean
+           ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=12F1840 clean
 
 
 
 # all
 .all-impl: .all-pre .depcheck-impl
            ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default build
+           ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=12F1840 build
 
 
 
index 9db2045..4772f43 100644 (file)
@@ -11,3 +11,10 @@ CND_ARTIFACT_PATH_default=dist/default/production/mybootload.X.production.hex
 CND_PACKAGE_DIR_default=${CND_DISTDIR}/default/package
 CND_PACKAGE_NAME_default=mybootload.x.tar
 CND_PACKAGE_PATH_default=${CND_DISTDIR}/default/package/mybootload.x.tar
+# 12F1840 configuration
+CND_ARTIFACT_DIR_12F1840=dist/12F1840/production
+CND_ARTIFACT_NAME_12F1840=mybootload.X.production.hex
+CND_ARTIFACT_PATH_12F1840=dist/12F1840/production/mybootload.X.production.hex
+CND_PACKAGE_DIR_12F1840=${CND_DISTDIR}/12F1840/package
+CND_PACKAGE_NAME_12F1840=mybootload.x.tar
+CND_PACKAGE_PATH_12F1840=${CND_DISTDIR}/12F1840/package/mybootload.x.tar
index cdc8392..cd5fe8b 100644 (file)
@@ -5,6 +5,7 @@
                    displayName="Header Files"
                    projectFiles="true">
       <itemPath>spbrgselect.inc</itemPath>
+      <itemPath>cpuselect.inc</itemPath>
     </logicalFolder>
     <logicalFolder name="LinkerScript"
                    displayName="Linker Files"
         <property key="extended-mode-mplink" value="false"/>
       </mpasmsuite>
     </conf>
+    <conf name="12F1840" type="2">
+      <toolsSet>
+        <developmentServer>localhost</developmentServer>
+        <targetDevice>PIC12F1840</targetDevice>
+        <targetHeader></targetHeader>
+        <targetPluginBoard></targetPluginBoard>
+        <platformTool>ICD3PlatformTool</platformTool>
+        <languageToolchain>MPASMWIN</languageToolchain>
+        <languageToolchainVersion>5.52</languageToolchainVersion>
+        <platform>2</platform>
+      </toolsSet>
+      <compileType>
+        <linkerTool>
+          <linkerLibItems>
+          </linkerLibItems>
+        </linkerTool>
+        <loading>
+          <useAlternateLoadableFile>false</useAlternateLoadableFile>
+          <alternateLoadableFile></alternateLoadableFile>
+        </loading>
+      </compileType>
+      <makeCustomizationType>
+        <makeCustomizationPreStepEnabled>false</makeCustomizationPreStepEnabled>
+        <makeCustomizationPreStep></makeCustomizationPreStep>
+        <makeCustomizationPostStepEnabled>false</makeCustomizationPostStepEnabled>
+        <makeCustomizationPostStep></makeCustomizationPostStep>
+        <makeCustomizationPutChecksumInUserID>false</makeCustomizationPutChecksumInUserID>
+        <makeCustomizationEnableLongLines>false</makeCustomizationEnableLongLines>
+        <makeCustomizationNormalizeHexFile>false</makeCustomizationNormalizeHexFile>
+      </makeCustomizationType>
+      <ICD3PlatformTool>
+        <property key="AutoSelectMemRanges" value="auto"/>
+        <property key="Freeze Peripherals" value="true"/>
+        <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
+        <property key="ToolFirmwareFilePath"
+                  value="Press to browse for a specific firmware version"/>
+        <property key="ToolFirmwareOption.UseLatestFirmware" value="true"/>
+        <property key="debugoptions.useswbreakpoints" value="false"/>
+        <property key="hwtoolclock.frcindebug" value="false"/>
+        <property key="memories.aux" value="false"/>
+        <property key="memories.bootflash" value="false"/>
+        <property key="memories.configurationmemory" value="false"/>
+        <property key="memories.eeprom" value="true"/>
+        <property key="memories.flashdata" value="true"/>
+        <property key="memories.id" value="true"/>
+        <property key="memories.programmemory" value="true"/>
+        <property key="memories.programmemory.end" value="0xfff"/>
+        <property key="memories.programmemory.start" value="0x0"/>
+        <property key="poweroptions.powerenable" value="false"/>
+        <property key="programoptions.eraseb4program" value="true"/>
+        <property key="programoptions.preserveeeprom" value="false"/>
+        <property key="programoptions.preserveprogramrange" value="false"/>
+        <property key="programoptions.preserveprogramrange.end" value="0xfff"/>
+        <property key="programoptions.preserveprogramrange.start" value="0x0"/>
+        <property key="programoptions.preserveuserid" value="false"/>
+        <property key="programoptions.testmodeentrymethod" value="VPPFirst"/>
+        <property key="programoptions.usehighvoltageonmclr" value="false"/>
+        <property key="programoptions.uselvpprogramming" value="false"/>
+        <property key="voltagevalue" value="5.0"/>
+      </ICD3PlatformTool>
+      <MPASMWIN-AS>
+        <property key="cross.reference.file" value=""/>
+        <property key="default.radix" value="HEX"/>
+        <property key="enable.case.sensitivity" value="true"/>
+        <property key="hex.output.format" value="INHX32"/>
+        <property key="preprocessor.macros" value=""/>
+        <property key="warning.level" value="0"/>
+      </MPASMWIN-AS>
+      <MPASMWIN-LD>
+        <property key="cod-file" value="false"/>
+        <property key="extra-lib-directories" value=""/>
+        <property key="hex-output-format" value="INHX32"/>
+        <property key="map-file" value="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map"/>
+      </MPASMWIN-LD>
+      <mpasmsuite>
+        <property key="absolute-mode" value="false"/>
+        <property key="eeprom-width" value="8"/>
+        <property key="extended-mode" value="false"/>
+        <property key="extended-mode-mpasm" value="false"/>
+        <property key="extended-mode-mplink" value="false"/>
+      </mpasmsuite>
+    </conf>
   </confs>
 </configurationDescriptor>
index 56374ed..0e594aa 100644 (file)
@@ -1,10 +1,28 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configurationDescriptor version="62">
   <projectmakefile>Makefile</projectmakefile>
-  <defaultConf>0</defaultConf>
+  <defaultConf>1</defaultConf>
   <confs>
     <conf name="default" type="2">
-      <platformToolSN>:=MPLABCommUSB:=04D8:=9009:=0100:=Microchip Technology, Inc. (www.microchip.com):=MPLAB ICD3 tm (www.microchip.com):=JIT123410560:=x:=en</platformToolSN>
+      <platformToolSN></platformToolSN>
+      <languageToolchainDir>/opt/microchip/mplabx/mpasmx</languageToolchainDir>
+      <mdbdebugger version="1">
+        <placeholder1>place holder 1</placeholder1>
+        <placeholder2>place holder 2</placeholder2>
+      </mdbdebugger>
+      <runprofile version="6">
+        <args></args>
+        <rundir></rundir>
+        <buildfirst>true</buildfirst>
+        <console-type>0</console-type>
+        <terminal-type>0</terminal-type>
+        <remove-instrumentation>0</remove-instrumentation>
+        <environment>
+        </environment>
+      </runprofile>
+    </conf>
+    <conf name="12F1840" type="2">
+      <platformToolSN></platformToolSN>
       <languageToolchainDir>/opt/microchip/mplabx/mpasmx</languageToolchainDir>
       <mdbdebugger version="1">
         <placeholder1>place holder 1</placeholder1>