PSoC™ Creator & Designer Forum Discussions
Using ISSP program, the checksum test passed. If using MiniProg3 program, it would say "erased successful, programmed successful, verified successful, checksum failed".
Question: Does MiniProg3 use a different algorithm than ISSP's to generate checksum value?
Thanks
Show LessAfter some growing frustration with using cybootloaderutils C library with .NET applications, I figure since we have the source code why not take a crack at porting the bootloader host library to a proper managed library written in C#? This would serve a couple purposes:
- Hopefully much easier integration for bootloader hosts written in C#: no longer having to deal with interop services, as well as other issues that can crop up when integrating an unmanaged library into a managed project.
- It seems to be a good bit easier to debug a managed library as opposed to an unmanaged library/unsafe code.
- A someone who really only deals with C# .NET occasionally to throw together a GUI for talking to a microcontroller, doing something to increase my familiarity with .NET and OOP will almost surely be beneficial in general.
- Recently, trying to use the bootloader utils library with a .NET Core project has proven to be more trouble than expected. Hopefully a rewrite into C# will allow for easier building across multiple .NET flavors and platforms.
I'm creating this thread as a way to keep track of progress of the project, as well as share it with others who will almost certainly have ideas for improvement. As someone who, as mentioned above, is not overly familiar with the patterns and feature sets of OOP and C#, there will doubtless be places in which the code I port over can be improved.
This will mostly be a spare time project, so I don't have a real timeline on it, but it looks like it shouldn't be too terribly much code to work through. First bit of progress is coming in the net post.
Current Link to VS2019 project is attached.
[11-11-20]
First Successful Bootload
API
- g_validRows now fills properly with blank data
- fixed a false error being flagged in CyBtldr_StartBootloaderOperation()
- Fixed CyBtldr_CreateGetAppStatusCmd() call inside CyBtldr_GetApplicationStatus()
loading outBuf instead of inBuf.
- Fixed problem with SendData() and CyBtldr_ProgramRow_v1() creating bad data packets
- Removed Array.Copy() that was messing up data packet creation in both methods
- buf.Skip() was being given incorrect argument in SendData()
API2
- Fixed RunAction_v0() from flagging an error and aborting the load if the
target bootloader is single-application. Error status is now overridden to
CYRET_SUCCESS if CyBtldr_GetApplicationStatus() returns an error, but the
bootloader response is valid.
COMMAND
- Fixed fillData32() not properly loading the LSB (word was not being shifted)
- CyBtldr_CreateEnterBootloaderCmd() had a length zero check that would fail if securityKeyBuff is null. Replaced with only a null check.
- Replaced cmdBuf.SetValue() call with fillData16() in CyBtldr_CreateEnterBootloaderCmd_v1().
- CyBtldr_CreateSendDataCmd() was assembling commands at the wrong index (7).
This has been corrected to 4, where the command data should properly begin.
[11-10-20]
- Added WPF test application to VS solution
- Fixed CyBtldr_StartBootloaderOperation() not filling g_validRows properly
- CyBtldr_FromHex() brought closer to original code. char.GetNumericValue() not working in the same way.
- CyBtldr_ReadLine now uses a StreamReader to properly read single lines
[11-9-20]
- api/api2 is "done" (untested)
- Project renamed to correct typo (was bool_netlib)
- Implemented interface for application to define communication functions
- TODO: re-evaluate all ref keywords for passing arguments.
[11-2-20]
- command.cs porting is "done" (untested)
- renamed namespace to CyBootloaderUtils
- Dropped the CyBtldr_ class name prefix. "CyBtldr_Parse" class is now just "Parse"
[10-29-20]
- parse.cs first pass porting is done (untested, will probably need work)
- command.cs porting is in progress
Message was edited by: Kyle Trenholm - Adding 11-2-20 updated project
Show LessHi,
I am new to Cypress. I am trying to design a simple BLE Beacon that is able to advertise string type data. I found eddystone example but It was a little bit confusing to me. If you have any useful resource to create ble beacon using cypress CY8CPROTO-063-BLE, can you help me?
Thank you all!
Show LessI have a project which is based around the PSoC 4 module cyble-022001-00. I want to store a very small amount of data during power off. Having found details around the Em_EEprom API I thought that I was in for a winner. However it seems that the component is not available when using this module.
Despite this, the header and source files for Em_Eeprom_Dynamic are in the generated source files. Does anyone know if it is possible to use the Emulated EEprom without the component (and therefore if it is possible to use it with the cyble-022001-00 module)?
Thanks
Lewis
Show LessGreetings- I have a PSoC5 design in Creator 4.3 with 2 1/2 Duplex RS-485 Uarts. They were 1st placed with internal clocks @ 9600Baud.
We need to change bit rates periodically during execution, so I changed the UART configurations for external clocks and added the clock components as customary. The design built fine, but never again. Any attempts to change either UARTS configuration now will fail to build, with "can't fit into 24 UDB blocks", and the sjplacer.exe failure (0x0000000B). Even reverting the schematic back to internal UART clocks, and deleting the clock components will cause the builder to fail.
Enough resources were available for the first build. I don't think they are getting released when no-longer needed by the design. We are tracking changes with GIT, and there seems to be an increasing number of keys being created, but very seldom see them deleted (only tagged as visible false)
"Clean and Build" does not fix this.@
Thanks
Ken Ayre/Sielox
Show Less