From 138ef9a70dccb603494a899bc9a318a2ab818f30 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Thu, 11 Jul 2013 01:48:37 +0000 Subject: flash write address checks work git-svn-id: https://svn.spreadspace.org/pic/trunk@78 a09c6847-51d9-44de-8ef2-e725cf50f3c7 --- bootloader/cmds-16f1847.inc | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'bootloader/cmds-16f1847.inc') diff --git a/bootloader/cmds-16f1847.inc b/bootloader/cmds-16f1847.inc index d5460c1..bb51298 100644 --- a/bootloader/cmds-16f1847.inc +++ b/bootloader/cmds-16f1847.inc @@ -68,13 +68,14 @@ read_flash_segment_next ;; flash write -------- cmd_w_flash -;; movf combuff + .3,f ; if addr[15:8] == 0 -> boot loader section -;; btfsc STATUS,Z -;; goto address_prohibited -;; movlw FLASH_BOUNDARY ; addr on boundary? -;; andwf combuff + .2,w -;; btfss STATUS,Z -;; goto address_invalid + movlw .2 ; if addr[15:8] < 2 -> boot loader section + subwf combuff + .3,w + btfss STATUS,C + goto address_prohibited + movlw FLASH_BOUNDARY ; addr on boundary? + andwf combuff + .2,w + btfss STATUS,Z + goto address_invalid ;; movlw FSS ; initialize EEADR:EEADRH and FSR ;; movwf cnt ;; movlw b'01011000' @@ -119,9 +120,7 @@ cmd_w_flash ;; movlw E_FLASH_WERR ;; bcf STATUS,RP1 ;; bcf STATUS,RP0 -;; movwf combuff + .2 ; = E_OK -;; movlw .1 ; bytes to send -;; call send_answer - movlw E_NOT_IMPL - call ack_cmd + movwf combuff + .2 ; = E_OK + movlw .1 ; bytes to send + call send_answer goto wait_new_cmd -- cgit v1.2.3