Author: robhamerling
Date: Thu Nov 27 12:17:49 2008
New Revision: 598
Modified:
trunk/unvalidated/include/peripheral/data_eeprom/pic_data_eeprom.jal
Log:
Some optimizations
Tested successfully with compiler 2.4i (dd 2008/11/26)
Modified:
trunk/unvalidated/include/peripheral/data_eeprom/pic_data_eeprom.jal
==============================================================================
--- trunk/unvalidated/include/peripheral/data_eeprom/pic_data_eeprom.jal
(original)
+++ trunk/unvalidated/include/peripheral/data_eeprom/pic_data_eeprom.jal
Thu Nov 27 12:17:49 2008
@@ -7,7 +7,7 @@
-- Released under the ZLIB license
(http://www.opensource.org/licenses/zlib-license.html)
--
-- Description:
--- Read from or write to EEPROM byte, word or double word.
+-- Read from or write to EEPROM/data a byte, word or double word.
-- Available procedures:
-- * data_eeprom_read(<offset>,<byte>)
-- * data_eeprom_write(<offset>,<byte>)
@@ -19,11 +19,13 @@
-- * <byte> = data_eeprom(<offset>)
-- * <word> = data_eeprom_word(<offset>)
-- * <dword> = data_eeprom_dword(<offset>)
+-- In all cases <offset> is a position relative to the beginning of
+-- EEPROM/data memory, thus starts at 0.
-- Examples of use:
--- * Read a byte of EEPROM at offset 7 into byte x:
+-- * Read a byte of EEPROM at offset 7 into x:
-- var byte x
-- data_eeprom_read(7, x)
--- * Read a word from EEPROM at offset 4 into word y:
+-- * Read a word from EEPROM at offset 4 into y:
-- var word y
-- y = data_eeprom_word(4)
-- * Write a byte to EEPROM at offset 18:
@@ -31,13 +33,15 @@
--
-- Notes:
-- - Write-protect bits in configuration memory may prohibit writing.
--- - Writing to locations outside the available memory may have
+-- - Writing to locations outside the available memory range may have
-- unexpected effects!
-- - Summary of changes
-- + Changed byte-offset to word-offset for larger EEPROMs with 18Fs
--- + Offset and flags settings for read and write in separate procedure
+-- + Offset and flags settings for read and write in separate procedure.
-- + Moved check for write completed ahead of read and write, for
--- better performance (ahead of read needed for read back of same
byte).
+-- performance (ahead of read needed for read back of same offset).
+-- + added 'pragma inline' to several procedures
+-- + some other code optimizations
--
--
-- ------------------------------------------------------------------------
@@ -130,9 +134,9 @@
-- ------------------------------------------------------------------------
procedure data_eeprom_read_word(word in offset, word out data) is
- var byte tempdata[2] at data
- data_eeprom_read(offset+0, tempdata[0])
- data_eeprom_read(offset+1, tempdata[1])
+ var byte tempbyte[2] at data
+ data_eeprom_read(offset+0, tempbyte[0])
+ data_eeprom_read(offset+1, tempbyte[1])
end procedure
@@ -155,9 +159,9 @@
-- ------------------------------------------------------------------------
procedure data_eeprom_write_word(word in offset, word in data) is
- var byte tempdata[2] at data -- type cast
- data_eeprom_write(offset+0, tempdata[0])
- data_eeprom_write(offset+1, tempdata[1])
+ var byte tempbyte[2] at data -- type cast
+ data_eeprom_write(offset+0, tempbyte[0])
+ data_eeprom_write(offset+1, tempbyte[1])
end procedure
@@ -168,11 +172,10 @@
-- ------------------------------------------------------------------------
procedure data_eeprom_read_dword(word in offset, dword out data) is
- var byte tempdata[4] at data
- data_eeprom_read(offset+0, tempdata[0])
- data_eeprom_read(offset+1, tempdata[1])
- data_eeprom_read(offset+2, tempdata[2])
- data_eeprom_read(offset+3, tempdata[3])
+ pragma inline
+ var word tempword[2] at data
+ data_eeprom_read(offset+0, tempword[0])
+ data_eeprom_read(offset+2, tempword[1])
end procedure
@@ -193,11 +196,10 @@
-- ------------------------------------------------------------------------
procedure data_eeprom_write_dword(word in offset, dword in data) is
- var byte tempdata[4] at data
- data_eeprom_write(offset+0, tempdata[0])
- data_eeprom_write(offset+1, tempdata[1])
- data_eeprom_write(offset+2, tempdata[2])
- data_eeprom_write(offset+3, tempdata[3])
+ pragma inline
+ var word tempword[2] at data
+ data_eeprom_write_word(offset+0, tempword[0])
+ data_eeprom_write_word(offset+2, tempword[1])
end procedure
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jallib" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/jallib?hl=en
-~----------~----~----~----~------~----~------~--~---