I don't want to use STMCubeMX.If I select ARMCM4 as target from ARM devices, then there is startup component. Give me a solution for this.
STM32CubeMX is the solution to generate the initialization code for these devices:
https://www.st.com/en/development-tools/stm32cubemx.html
Why do you not wish to use this?
Otherwise you would need to create your initialization code manually. You can use default examples such as that for ARMCM4 as a reference.
I fully agree with Ronan. You have most likely selected the latest version 3.0.0 of the Keil::STM32F4xx_DFP. With this version, it is mandatory to generate the startup code with CubeMX. You could use the previous version 2.17.1 of this pack where the startup code is still included. Since setting up the clock tree and initializing all other peripherals is a lot of work, I don't know why you would not like to use CubeMX.