Hi-
I am new to Keil but do have experience with PIC 16Fxx embedded development which is obviously much simpler. I mostly used a command line interface. I also have some experience with the .NET IDE environment. However I am mainly a hardware person. I have designed STM32's into several projects and they work great, but others have always done the software. I now find myself needing to do the software myself. As a newcomer, I'm finding uVision4 to be fairly bewildering. I have built some of Keil's step by step examples and they work fine with my MCBSTM32 target board.
I found a project on ST's website that is a good start towards what I need to do. However, I have a Keil MCBSTM32 demo board while the ST code targets the ST STM3210B, STM3210C and STM3210E EVAL boards. The STM3210B uses an STM32F103VBT (100 pins, 128K flash, 8K RAM), the STM3210E uses an STM32F103ZET (100 pins, 512K, 32K), and the STM3210C uses an STM32F107VCT (100, 256K, 64K). In contrast, the Keil MCBSTM32 board uses an STM32F103RBT (64 pins, 128K, 20K). The ST project that I'm interested in only uses a couple of the peripherals, a few GPIO's, and not much flash or RAM so I figured it should be easy to port the code over to the smaller part. As a start, opening up the STM project using uVision4, I can select which of the 3 ST boards to target and it compiles for each of them without a complaint. I can see that the IDE is reading something out of the source code and presents me with drop down menus for selecting one of these 3 ST boards. The IDE is reading the comments I think.
My question is this, using uVision4, how do I retarget this project for the smaller part? I know I'm going to have to adjust the GPIO usage and things like that, and I'm fine with that. The ST code is full of #ifdefs and #ifndefs for conditionally compiling the code based on which target board was selected. Should I start with a new project and edit all the ST code to what I need, or should I take the existing ST project, edit it, and add a new choice for the MCBSTM32 board? So far neither of these options is looking easy, as I said, there seems to be a really steep learning curve for the IDE. It gives you a broadside overload of information that is hard for a newcomer to sort out. Kind of a forest from the trees situation.
Years ago I had a friend who's father worked in the service department at a large helicopter manufacturer. He said helicopters would come back for repair with equipment tags saying "does not work when switch is in the O F F position". I'm hoping my questions are not in that category...
Thanks!