Large arrays

38 views
Skip to first unread message

Mike K

unread,
Apr 3, 2020, 7:33:37 PM4/3/20
to jallib
I'm trying to implement a large array (512) on a 16F1829.  I see in the datasheet that it has a "Linear Access to GPR" feature.  Does JAL take advantage of this to make it easy on me?

Regards,
Mike

Matthew Schinkel

unread,
Apr 3, 2020, 8:15:27 PM4/3/20
to jallib
JalV2 doesn't support array's larger the 256 bytes, however, you can use the large array library. See one of the jallib samples such as 18f4620_large_array.jal

I'm not sure of the linear access feature your speaking of, but there is a way to read & write in a linear way, see jallib sample 18f67j50_memory_pointer.jal

Matt.

Mike K

unread,
Apr 3, 2020, 9:31:15 PM4/3/20
to jallib
Thanks, Matt.  I'll have do my own library then.  It seems that the large array library is meant for 18F PICs, as the arrays are allocated in blocks of 256 bytes and the 16F PICs only have 80-byte blocks.  No worries.

Rob CJ

unread,
Apr 4, 2020, 3:00:29 AM4/4/20
to jallib
Hi Mike,

I made an addition some time ago to the large array that Matt is referring to since I needed it for a 16f pic. It is in the latest official JAL release.

So if you add this to your 16F program it should work:
-- Setup the large array
const dword LARGE_ARRAY_1_SIZE = 200         -- choose number of array variables
const dword LARGE_ARRAY_1_VARIABLE_SIZE = 1  -- choose size of variables (byte*1)
include large_array_1                        -- include the array library
alias test is large_array_1                  -- rename/alias the array to test

test[150] = 0x11 --  This should work.

BTW. I only implemented this for large_array_1 not large_array_2, 3 and 4. 

Kind regards,

Rob


Van: 'Mike K' via jallib <jal...@googlegroups.com>
Verzonden: zaterdag 4 april 2020 03:31
Aan: jallib <jal...@googlegroups.com>
Onderwerp: [jallib] Re: Large arrays
 
--
You received this message because you are subscribed to the Google Groups "jallib" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jallib+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/a466c9b5-cc64-42f6-8843-15b5c8bc5b4b%40googlegroups.com.

Mike K

unread,
Apr 4, 2020, 7:40:52 AM4/4/20
to jallib
Thanks, Rob.  I'll check it out.
To unsubscribe from this group and stop receiving emails from it, send an email to jal...@googlegroups.com.

Rob CJ

unread,
Apr 4, 2020, 10:40:34 AM4/4/20
to jal...@googlegroups.com
Hi Mike,

One addition. I also made the library versions for large array 2, 3 and 4 today for the PIC16Fxx (core 14 and 14H).

Best to look at the sample 16F1825 that uses 3 large arrays (byte, word and dword) at the same time.

Note that these versions are only available after this weekend in the new bee package.

If you are using the latest release and you only need 1 large array have a look at sample 12f617_large_array.jal.

Good luck!

Kind regards,

Rob




Van: 'Mike K' via jallib <jal...@googlegroups.com>
Verzonden: zaterdag 4 april 2020 13:40
Aan: jallib <jal...@googlegroups.com>
Onderwerp: Re: [jallib] Re: Large arrays
 
To unsubscribe from this group and stop receiving emails from it, send an email to jallib+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/9a050cf7-b45b-48b7-b833-2d991797d978%40googlegroups.com.

Mike K

unread,
Apr 4, 2020, 11:31:22 AM4/4/20
to jallib
Thank you, Rob.

Oliver Seitz

unread,
Apr 4, 2020, 1:14:08 PM4/4/20
to jal...@googlegroups.com
Hey Rob!

Thanks for your effort. Did you edit the source code by hand? I'm going to use a PIC18F27K42 as data logger, making use of all of the 8k RAM it has. 

If you've been using a script to have the source code generated, it should be no great deal to expand it to generate arrays of up to 7936 bytes or so. 

If you didn't generate the source code, I would in the next few days :-)

Oh well, and there won't be any need to expand all large_array libs that way, for if the first array is almost 8k, there can't be any other large array.

The Pic16f19197 has 4k RAM. So if large_array_1 is modified to being able to fill up all RAM, I should do so with the _pic14 libraries...

Greets,
Kiste

Am Samstag, 4. April 2020, 16:40:35 MESZ hat Rob CJ <rob...@hotmail.com> Folgendes geschrieben:


Rob CJ

unread,
Apr 4, 2020, 1:33:49 PM4/4/20
to jal...@googlegroups.com
Hi Kiste,

I did not do it by creating a script but that would be a logical thing to do now that you mention it. I used the version made by Matt and changed it manually (yes manually) for the 14/14H cores (like for your PIC16F19197) which resulted in a source code file of 2000 lines .....

Currently it supports an array up to 2K. I am not sure if you need larger than that but with the new bee version you could use all 4 large arrays each of 2K giving you 8K in total although it would still be 4 separate arrays then. 

As mentioned the new sample file 16f1825_large_array.jal in the upcoming bee package gives you an example of how to use more than one array. It uses three, all of different type (byte, word, dword).

I do not yet have plans to create a script but if you want, be my guest 🙂. If you really need more than 2K for your array let me know, I might give it a try (but no planning).

Kind regards,

Rob




Van: 'Oliver Seitz' via jallib <jal...@googlegroups.com>
Verzonden: zaterdag 4 april 2020 19:13
Aan: jal...@googlegroups.com <jal...@googlegroups.com>

Mike K

unread,
Apr 4, 2020, 2:13:16 PM4/4/20
to jallib
Hi Rob,

I wasn't able to compile your sample file for 16F1825.  It says that it's out of data space.  I did a fresh install of jallib_full_win_setup-1.3.0.exe.  Do I need to use your file with the latest "bee"?  If so, do I just copy the files?  I haven't dealt with "bees" before now.

Regards,
Mike


On Saturday, April 4, 2020 at 3:00:29 AM UTC-4, Rob CJ wrote:
To unsubscribe from this group and stop receiving emails from it, send an email to jal...@googlegroups.com.

Rob CJ

unread,
Apr 4, 2020, 2:50:56 PM4/4/20
to jallib
Hi Mike,

I do not know which sample file you used since I had forgotten to add that one to the last Jallib release (we are currently at version 1.5.0) so it was never part of a release.

Attached the following files that you need for one large byte array:
-) large_array_1
-) large_byte_array_1_pic14
-) sample file for pic16f1825 for 1 array. This is a special version for you, the original sample file uses 3 arrays. This one uses 1 array of 200 bytes but you can change it to almost 1k (limitation of the memory of the PIC).

If you put these files in your directory and compile the sample file it should work.

BTW. You get of course out of data space if your array is bigger than the available memory of the chip which is 1k for the PIC used in the sample file.

For bee packages I normally download the zip file from http://justanotherlanguage.org/downloads unzip it and move the files to a jallib folder.

Let me know if it worked.

Kind regards,

Rob


Van: 'Mike K' via jallib <jal...@googlegroups.com>
Verzonden: zaterdag 4 april 2020 20:13

Aan: jallib <jal...@googlegroups.com>
Onderwerp: Re: [jallib] Re: Large arrays
To unsubscribe from this group and stop receiving emails from it, send an email to jallib+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/543cfbdf-4009-477d-b6c0-d303e87a88a9%40googlegroups.com.
16f1825_large_array_1.jal
large_array_1.jal
large_byte_array_1_pic14.jal

Mike K

unread,
Apr 4, 2020, 3:45:49 PM4/4/20
to jallib
I'm ashamed to say that I was assuming that it had 2K of RAM.  (Wishful thinking, I guess.)  I also got a strange error at the time that the PLLEN pragma was not recognized, even though I could clearly see it in the PIC library file.  All errors cleared up, compiled, programmed, and ran successfully.

Thank you, Rob.

Regards,
Mike


Reply all
Reply to author
Forward
0 new messages