-
Notifications
You must be signed in to change notification settings - Fork 403
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issues with Chaucer sketches #236
Comments
I'm not sure that Chaucer112 could have ever worked. You need pgm_read_byte_far() to get beyond 64k, and probably pgm_get_far_address() as well. |
The problem is that I don't know which arrays is stored in the "short" section and which in the "far" section. I did a memory dump after upload, and it turns out that the order (starting from the lowest memory address is knightsTale3, knightsTale2, knightsTale1. Is there a way to tell the compiler where to store the arrays in progmem? |
At one time I submitted a set of "64K Problem" issues against Arduino: The linker scripts control the placement of data items in flash. For progmem there is: |
Meh. Those sketches never "worked", beyond being big enough to see if the upload failed. |
https://www.avrfreaks.net/forum/ordering-data-progmem |
Sorry to bring this up again, but it would be very helpful if these Chaucer sketches did work. I'm working on a project where an ATmega1284 is communicating with an audio DSP. The microcontroller also holds the DSP firmware (loaded into the DSP on boot), and the total size exceeds 64k. Preferably I'd like to place the two DSP firmware arrays somewhere high up in flash (close to the bootloader). I know I can use pgmspace_read_far to get the data, but how do I tell the compiler where in progmem to place these two DSP arrays in the first place? I did some research and saw someone referring to __memx. However, I didn't understand much of it, and no real-world examples were provided. Do you know how I can place an array a known place in progmem so that I can access it with pgmspace_read_far? |
Hi!
I thought I should give one of the Chaucer sketches a try, and loaded the chaucer112k sketch to an ATmega1284P. First of all it doesn't even compile for IDE versions greater than 0022. Seems like these are long forgotten.
It was a quick fix getting it to compile with IDE 1.8.5, but I'm experiencing some issues. Seems to hit me when exceeding 64k flash usage. When the full sketch is loaded it only prints the knightsTale3 array, three times! How can we get this to work like intended?
The text was updated successfully, but these errors were encountered: