title: How to start ARM Cortex programming using embedded C?
body: <p>I am familiar with 8051 C programming .Now I want to learn ARM cortex M3 programming . I have STM32F103C8T6 development board with ARM Cortex M3 Processor, it's programmer and Keil compiler.I want to do small projects with it for example blinking LEDs ,SPI and I2C programming etc. I am having little knowledge about arm architecture . Many people on blogs say directly start programming instead of reading architecture or reading hundred pages ARM datasheet. I don't understand how is it possible.  </p>
  
  <p>So what should be my first step? </p>
  
  <ol>
  <li><p>Should I read datasheet of STM32F103C8T6 or ARM Cortex M3 user manual?</p></li>
  <li><p>8051 and ARM programming has much difference. In 8051 ,we don't need to add library/header files. In ARM we need to add many library/header files.
  Suppose I want to do blinky program or learn SPI/I2C communication. In KEIL Compiler or STM CubeMX, these header files are already there .But if I wish do it everything (writing header file codes for peripheral,i/o ports, SPI/I2C protocol codes) from scratch by myself,is it really possible ? If yes, what should I do for it?</p></li>
  </ol>
  
  <p>I am very much confused and frustrated as I have not find proper person yet to guide me regarding it</p>
  
  <p><img src="https://i.stack.imgur.com/wXrA0.png" alt="enter image description here"></p>