系统复位后,程序就会进入复位中断执行系统初始化以及进入main函数。进入main之前,首先进入__main(),这是一个复杂的过程,当程序运行到__main函数,先跳转到__scatterload函数运行,执行完__scatterload函数后,R10和R11会被赋值,执行完__scatterload函数后,就接着执行__scatterload_null函数。

R0:0x08001650表示的是加载域起始地址。R1:0x20000000为运行域地址。R2:0x0000001C为要复制的RWData大小,也可以在map文件查找得知。R3:0x0800016C是_scatterload_copy函数的起始地址。__scatterload_null函数的最后一行又跳转到_scatterload_copy函数。

需要安装三星器件库,s3c2440器件库要到三星官网下载。有对应的s3c2410文件,已经代表了三星这一系列的arm架构,直接可以在s3c2440工程里,只是部分需要修改。你在见工程时,选着arm三星的就是这个了s3c3440了,s3c24x0都是三星公司做的。一般是在RVDS下面开发裸机程序和验证芯片,这款芯片三星已经停产了。

s3c2440是一款arm9内核的处理器,里面有了mmu(内存管理单元),他通常是用来跑linux操作系统的,程序代码的编写和编译,都不是keil环境可以完成的,所以厂家没有把它放入keil库里去的。keil最多是用来开发8位机裸机程序或者32位机(比如stm32,内部没有mmu)嵌入微型操作系统的程序,比如uc/os,

对于所有标准8051单片机如果在列表里找不到相应的型号均可以选择标准的Intel8051ah,因为任何厂家生产的51内核单片机均是源自Intel的8051技术授权,因此尽管不属于同样的公司但是内部技术全部都是同步兼容的,比如说AT89C5X系列或者STCXXC5X系列均可以选用8051ah。这只是一个补充知识,问题是你的keil本身装的是arm版,下载的时候要看清楚应该下载keilfor51而不是keilforarm。
3、keilC51ARM共存是keilc51和keilmdk共存吧。看您的描述,像是在本想打开keilc51的情况下打开了keilmdk,所以选不了51.如果想打开keilc51,就去这个程序的安装目录下找到该程序的可执行文件然后打开,比如C:\Keil\UV2\Uv2.exe.就可以选择51的芯片了。