Forums

Cypress PSOC CY8CKit-49-42xx Prototype Kit

Started by rickman September 12, 2014
I am helping to port Mecrisp Forth to the PSOC and am having trouble 
loading my program to the eval board.  I am using the $4 CY8CKit-49-42xx 
board with the more functional 4245 device.  I started with a UART 
loopback program and modified it to be "bootloadable" which means it can 
be used with the bootload on this board.  This is firmware on the board 
that accepts commands to flash a program while not clobbering itself.

I am able to load a canned program that blinks the LED, so I know the 
board works.  When I try to load my program it gives an error, "The 
flash row is not valid for the selected array."  Several people in the 
forums can't seem to figure this out.  I've put in a support ticket but 
it seems I won't hear from them until next week.

Anyone familiar with the PSOC 4 line and especially the bootloader used 
on the CY8CKit-49-42xx?

-- 

Rick
Am Samstag, 13. September 2014 01:11:34 UTC+2 schrieb rickman:
> I am helping to port Mecrisp Forth to the PSOC and am having trouble > > loading my program to the eval board. I am using the $4 CY8CKit-49-42xx > > board with the more functional 4245 device. I started with a UART > > loopback program and modified it to be "bootloadable" which means it can > > be used with the bootload on this board. This is firmware on the board > > that accepts commands to flash a program while not clobbering itself. > > > > I am able to load a canned program that blinks the LED, so I know the > > board works. When I try to load my program it gives an error, "The > > flash row is not valid for the selected array." Several people in the > > forums can't seem to figure this out. I've put in a support ticket but > > it seems I won't hear from them until next week. > > > > Anyone familiar with the PSOC 4 line and especially the bootloader used > > on the CY8CKit-49-42xx?
I use other PSoC devices with the bootloader and I have seen this problem before. My hint is to check those design-wide-resources that have to match between the bootloader and bootloadable. The bootloader seems to check those and if they do not match, the behavior that you saw would result. This includes clocks and the reset-value of certain pins. Andreas
On 9/15/2014 5:16 AM, acd wrote:
> Am Samstag, 13. September 2014 01:11:34 UTC+2 schrieb rickman: >> I am helping to port Mecrisp Forth to the PSOC and am having trouble >> >> loading my program to the eval board. I am using the $4 CY8CKit-49-42xx >> >> board with the more functional 4245 device. I started with a UART >> >> loopback program and modified it to be "bootloadable" which means it can >> >> be used with the bootload on this board. This is firmware on the board >> >> that accepts commands to flash a program while not clobbering itself. >> >> >> >> I am able to load a canned program that blinks the LED, so I know the >> >> board works. When I try to load my program it gives an error, "The >> >> flash row is not valid for the selected array." Several people in the >> >> forums can't seem to figure this out. I've put in a support ticket but >> >> it seems I won't hear from them until next week. >> >> >> >> Anyone familiar with the PSOC 4 line and especially the bootloader used >> >> on the CY8CKit-49-42xx? > > I use other PSoC devices with the bootloader and I have seen this problem before. > My hint is to check those design-wide-resources that have to match between the > bootloader and bootloadable. > The bootloader seems to check those and if they do not match, the behavior that you saw would result. > This includes clocks and the reset-value of certain pins.
Ok thanks. Someone in the Cypress forums suggested there was a memory conflict between the bootloader and my code (bootloadable). Seems the bootloader is not well integrated into the Creator tool you have to track this stuff yourself. The info you offer is not enough for me to begin to figure this out so I expect I will just wait for the support guys to get back to me. They have my project. It's funny really. They have the most capable tool I have seen from any of the vendors. Obviously they put a lot of time and effort into developing it. They offer a $4 prototyping "kit" which has a *lot* of potential to get attention. But they slack off supporting it in the tools and it ends up doing the opposite by making the tool look bad. Oh well. I expect to get past the learning curve pains shortly. -- Rick
rickman <gnuarm@gmail.com> wrote:
> Ok thanks. Someone in the Cypress forums suggested there was a memory > conflict between the bootloader and my code (bootloadable). Seems the > bootloader is not well integrated into the Creator tool you have to > track this stuff yourself. The info you offer is not enough for me to > begin to figure this out so I expect I will just wait for the support > guys to get back to me. They have my project.
I think I had this one. The solution was to take their example project (that has source for the bootloader and bootloadable parts) and hack that, rather than starting my own project from scratch. No doubt there was some setting somewhere that my own project got wrong (I did stare at them quite carefully). The example project wasn't one they put in an obvious place, it was on a forum thread where somebody asked for the source to the bootloader example. I'm actually using the PSoC 5LP on the Pioneer kit that's usually used to program the PSoC 4, so which I think the source is here: http://www.element14.com/community/thread/27067/l/psoc-5lp-programmer-firmware I just came across: http://www.arachnidlabs.com/blog/2013/02/25/freeloader/ which looks interesting too (though that's for PSoC 5)
> It's funny really. They have the most capable tool I have seen from any > of the vendors. Obviously they put a lot of time and effort into > developing it. They offer a $4 prototyping "kit" which has a *lot* of > potential to get attention. But they slack off supporting it in the > tools and it ends up doing the opposite by making the tool look bad.
PSoC is very nice on paper, moderately nice to use, and a pain to debug when you discover that half the information is in the heads of Cypress people and not documented anywhere, except maybe forum threads if you're lucky. Essentially it has the same level of documentation as any other microcontroller, but a much more complex (FPGA-class) toolchain. Theo
On 9/25/2014 5:35 AM, Theo Markettos wrote:
> rickman <gnuarm@gmail.com> wrote: >> Ok thanks. Someone in the Cypress forums suggested there was a memory >> conflict between the bootloader and my code (bootloadable). Seems the >> bootloader is not well integrated into the Creator tool you have to >> track this stuff yourself. The info you offer is not enough for me to >> begin to figure this out so I expect I will just wait for the support >> guys to get back to me. They have my project. > > I think I had this one. The solution was to take their example project > (that has source for the bootloader and bootloadable parts) and hack > that, rather than starting my own project from scratch. No doubt there was > some setting somewhere that my own project got wrong (I did stare at them > quite carefully).
Sounds good, but I don't learn anything from that and likely find a lot of frustration.
> The example project wasn't one they put in an obvious place, it was on a > forum thread where somebody asked for the source to the bootloader example.
I have the example projects and I can figure out the code, its the tools that are not explained clearly.
> I'm actually using the PSoC 5LP on the Pioneer kit that's usually used to > program the PSoC 4, so which I think the source is here: > http://www.element14.com/community/thread/27067/l/psoc-5lp-programmer-firmware > > I just came across: > http://www.arachnidlabs.com/blog/2013/02/25/freeloader/ > which looks interesting too (though that's for PSoC 5) > >> It's funny really. They have the most capable tool I have seen from any >> of the vendors. Obviously they put a lot of time and effort into >> developing it. They offer a $4 prototyping "kit" which has a *lot* of >> potential to get attention. But they slack off supporting it in the >> tools and it ends up doing the opposite by making the tool look bad. > > PSoC is very nice on paper, moderately nice to use, and a pain to debug when > you discover that half the information is in the heads of Cypress people and > not documented anywhere, except maybe forum threads if you're lucky. > Essentially it has the same level of documentation as any other > microcontroller, but a much more complex (FPGA-class) toolchain.
Yes, exactly. I remember when the PSOC was still fairly new. They knew the parts were so complicated to use that they just couldn't easily explain it. They had a weekly training class online or dial in actually I think, a conference call. I tried getting setup for that once and I was told to have all my info ready because it would likely be just me as a 1 on 1 session, lol. They have tried to hid the details with the tool and I think it may work ok. It was just the bootloader thing that is a bit hard to figure out. I heard back and my project was pointing to the wrong .hex and .elf files. They haven't told me where I should have found the correct ones. Somehow the ones I had were for the Pioneer board I think. I am using the whatever they call it $4 proto kit board. It doesn't really have a name I guess. If I were using the recommended programming cable I think it would have worked just fine. Here is some more irony. I was doing this to support a couple of guys who want to port Mecrisp forth to the PSOC so that one of them can manually program the logic at the register level. I think he will find this to be a bit of a messy job. I'm bailing on forth on the PSOC unless it works under the Cypress tools. Even then it will be work to integrate Forth with the PSOC stuff. I think I'm moving on to the TI or maybe the Motorola ARM parts. They already have Mecrisp ported to some of the TI ARM parts, in fact they call the entire ARM port of Mecrisp (it started on the MSP430) Stellaris because until recently TI was marketing their ARM parts under that name still. TI has some ARM R4 and R5 parts that are interesting. I may try porting Mecrisp to those... or not lol TI also has some interesting DSP parts that might be useful targets. -- Rick