|
From: Francesco <f18...@ya...> - 2010-03-02 00:05:59
|
Hi,
I've pushed a few other commits which
1) adds debug precompiled binaries to the win\deps folder, so that
testing & debugging the Windows port of upp should now be easier (by
building upp_wx using the "Static Debug" configuration of MSVC project
files);
2) introduces some done-by-hand changes in uppmainwindow_base.cpp
which theorically is wxFormBuilder-generated; this fixes a resizing
problem I noticed since a long time ago ;)
I've also uploaded the r836 releases on the usbpicprog server but
unfortunately I had few time to test them... anyway hopefully we
should be very near to perfection now :)
Tomorrow I'll test these releases on my virtualized WinXP and I'll try
to get my hands on a copy of Windows Vista (thanks MSDNAA!) to test
the installation on that OS, too.
Francesco
2010/3/1 Francesco <f18...@ya...>:
> Hi Frans,
>
> 2010/3/1 Frans Schreuder <fra...@gm...>:
>> I found a problem in the usbpicprog windows version which seemed to
>> exist since we moved to libusb-1.0.
>> The problem was that 3 bytes of data were added to every data package
>> while programming. I first thought this might be a problem with
>> libusb-1.0-win32, but it is a difference between mingw and msvc. (I also
>> moved from mingw to msvc 2008 at the same time).
> ouch. Unfortunately I didn't have time to effectively test the
> programmed PICs in a real circuits recently so I didn't notice this
> problem! (I just trusted UPP when it was saying that the programming
> was successful).
>
>> The difference is the way this union was being handled:
>>
>> 146typedef union
>> 147{
>> 148 struct
>> 149 {
>> 150 unsigned cmd:8; /// One of the CMD_ defines above
>> 151 unsigned size:8; /// Size of the datafield
>> 152 unsigned addrU:8; /// The address is devided in 3 bytes, Upper, High and Low
>> 153 unsigned addrH:8;
>> 154 unsigned addrL:8;
>> 155 unsigned blocktype:8; /// The blocktype can be middle, first or last (or first|last)
>> 156 unsigned char dataField[32];
>> 157 } fields;
>> 158 unsigned char data[38];
>> 159} UppPackage;
>>
>> msvc added 3 bytes between blocktype and dataField in data[],
> maybe this is because of some required data alignment?
> I think there exist flags which force MSVC to avoid stuffing
> additional bytes in a structure but I'd need to look how they can be
> used...
>
>> so I changed it into
>>
>> 144typedef enum
>> 145{
>> 146 up_cmd,
>> 147 up_size,
>> 148 up_addrL,
>> 149 up_addrH,
>> 150 up_addrU,
>> 151 up_blocktype,
>> 152 up_data
>> 153}UPP_INDEX;
>> 154/**
>> 155 UppPackage is the data header which is sent to the programmer hardware.
>> 156*/
>> 157typedef struct
>> 158{
>> 159 /*struct
>> 160 {
>> 161 unsigned cmd:8; /// One of the CMD_ defines above
>> 162 unsigned size:8; /// Size of the datafield
>> 163 unsigned addrU:8; /// The address is devided in 3 bytes, Upper, High and Low
>> 164 unsigned addrH:8;
>> 165 unsigned addrL:8;
>> 166 unsigned blocktype:8; /// The blocktype can be middle, first or last (or first|last)
>> 167 unsigned char dataField[32];
>> 168 } fields;*/
>> 169 unsigned char data[38];
>> 170} UppPackage;
> this has the drawback that basically UppPackage is seen by the
> compiler as a homogeneous set of bytes; i.e. basically UppPackage is
> an untyped array.
> This theorically makes easier to write bugs in the code, even if I see
> that the modifications in hardware.cpp are fairly straightforward...
>
>> Also the libusb-1.0 without pthread is out now, so I updated the x86 dll in svn.
> hmmm, I already updated the win\deps stuff in r832 with the new libusb
> without pthread dependency (and in fact I removed pthread.lib/dll from
> the repo).
> I see that the libusb-1.0.dll that you committed is 599kbytes while
> the one I had built was 135 kbytes. Perhaps did you build it in debug
> mode?
> All other deps I placed in win\deps are built in release mode because
> that's the cfg to use when producing final releases for the end user
> (I wrote something about the build mode used for all deps in
> http://usbpicprog.svn.sourceforge.net/viewvc/usbpicprog/trunk/upp_wx/win/deps/info.txt?revision=815&view=markup).
> Anyway it would be important to avoid mixing different flags (like
> e.g. /MD or /MT or those regarding optimization or debug infos) in the
> precompiled binaries which we provide.
> Maybe we should have win\deps\release and win\deps\debug folders
> containing the x86 and amd64 precompiled binaries to make it easier
> also the development process instead of only the release process...
>
>> Francesco, could you build version 834 adm64 with the new libusb-1.0?
> sure. I'll do it this evening as soon as I get back home and upload
> the result on the server.
>
> Francesco
>
|