⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 framework.lst

📁 一个机器人开发的相关嵌入式开发源码
💻 LST
📖 第 1 页 / 共 4 页
字号:
 146:framework.c   **** 
 147:framework.c   ****   consolSendString("FIQ exception !!!\nAddress: 0x");
 195              		.loc 1 147 0 196 00d4 24009FE5 		ldr	r0, .L24 197              		.loc 1 143 0 198 00d8 04D04DE2 		sub	sp, sp, #4 199              	.LCFI9: 200              	.LVL17: 201              		.loc 1 147 0 202 00dc FEFFFFEB 		bl	consolSendString 148:framework.c   ****   consolSendNumber(16, 8, 0, '0', value); 
 203              		.loc 1 148 0 204 00e0 1000A0E3 		mov	r0, #16 205              	.LVL18: 206 00e4 04E04EE2 		sub	lr, lr, #4 207              	.LVL19: 208 00e8 0810A0E3 		mov	r1, #8 209 00ec 0020A0E3 		mov	r2, #0 210 00f0 3030A0E3 		mov	r3, #48 211 00f4 00E08DE5 		str	lr, [sp, #0] 212 00f8 FEFFFFEB 		bl	consolSendNumber 213              	.L22: 214 00fc 3D0000EA 		b	.L22 215              	.L25: 216              		.align	2 217              	.L24: 218 0100 98000000 		.word	.LC4 219              	.LFE6: 220              		.size	exceptionHandlerFiq, .-exceptionHandlerFiq 221              		.align	2 222              		.global	exceptionHandlerInit 223              		.type	exceptionHandlerInit, %function 224              	exceptionHandlerInit: 225              	.LFB7: 149:framework.c   ****   while(1)
 150:framework.c   ****     ;
ARM GAS  /cygdrive/c/DOCUME~1/HOWARD~1/LOCALS~1/Temp/ccP8AgD9.s 			page 8 151:framework.c   **** }
 152:framework.c   **** 
 153:framework.c   **** #if (IRQ_HANDLER == 0)
 154:framework.c   **** /*****************************************************************************
 155:framework.c   ****  *
 156:framework.c   ****  * Description:
 157:framework.c   ****  *    Default exception handler for normal interrupts. This handler should
 158:framework.c   ****  *    normally never be used.
 159:framework.c   ****  *    Prints information and halt. Observe that code execture in exception
 160:framework.c   ****  *    mode (as opposed to supervisor mode, which is the normal execution mode).
 161:framework.c   ****  *
 162:framework.c   ****  ****************************************************************************/
 163:framework.c   **** static void
 164:framework.c   **** exceptionHandlerIrq(void)
 165:framework.c   **** {
 166:framework.c   ****   register unsigned int programCounter asm ("lr");
 167:framework.c   ****   unsigned int          value = programCounter - (unsigned int)0x04;
 168:framework.c   **** 
 169:framework.c   ****   consolSendString("IRQ exception !!!\nAddress: 0x");
 170:framework.c   ****   consolSendNumber(16, 8, 0, '0', value); 
 171:framework.c   ****   while(1)
 172:framework.c   ****     ;
 173:framework.c   **** }
 174:framework.c   **** #endif
 175:framework.c   **** 
 176:framework.c   **** /******************************************************************************
 177:framework.c   ****  * Implementation of public functions
 178:framework.c   ****  *****************************************************************************/
 179:framework.c   **** 
 180:framework.c   **** /*****************************************************************************
 181:framework.c   ****  *
 182:framework.c   ****  * Description:
 183:framework.c   ****  *    Connect all default exception handlers.
 184:framework.c   ****  *    The application can overwrite these handlers with new ones.
 185:framework.c   ****  *
 186:framework.c   ****  ****************************************************************************/
 187:framework.c   **** void
 188:framework.c   **** exceptionHandlerInit(void)
 189:framework.c   **** {
 226              		.loc 1 189 0 227              		@ Function supports interworking. 228              		@ args = 0, pretend = 0, frame = 0 229              		@ frame_needed = 0, uses_anonymous_args = 0 230              		@ link register save eliminated. 231              	.LVL20: 190:framework.c   ****   pISR_UNDEF  = (unsigned int)exceptionHandlerUndef;
 232              		.loc 1 190 0 233 0104 50209FE5 		ldr	r2, .L28 234 0108 9131A0E3 		mov	r3, #1073741860 235 010c 002083E5 		str	r2, [r3, #0] 191:framework.c   ****   pISR_SWI    = (unsigned int)exceptionHandlerSwi;
 236              		.loc 1 191 0 237 0110 48209FE5 		ldr	r2, .L28+4 238 0114 043083E2 		add	r3, r3, #4 239 0118 002083E5 		str	r2, [r3, #0] 192:framework.c   ****   pISR_PABORT = (unsigned int)exceptionHandlerPabort;
 240              		.loc 1 192 0ARM GAS  /cygdrive/c/DOCUME~1/HOWARD~1/LOCALS~1/Temp/ccP8AgD9.s 			page 9 241 011c 40209FE5 		ldr	r2, .L28+8 242 0120 043083E2 		add	r3, r3, #4 243 0124 002083E5 		str	r2, [r3, #0] 193:framework.c   ****   pISR_DABORT = (unsigned int)exceptionHandlerDabort;
 244              		.loc 1 193 0 245 0128 38209FE5 		ldr	r2, .L28+12 246 012c 043083E2 		add	r3, r3, #4 247 0130 002083E5 		str	r2, [r3, #0] 194:framework.c   ****   pISR_FIQ    = (unsigned int)exceptionHandlerFiq;
 248              		.loc 1 194 0 249 0134 30209FE5 		ldr	r2, .L28+16 250 0138 083083E2 		add	r3, r3, #8 251 013c 002083E5 		str	r2, [r3, #0] 195:framework.c   **** 
 196:framework.c   **** #if (IRQ_HANDLER == 0)
 197:framework.c   ****   pISR_IRQ    = (unsigned int)exceptionHandlerIrq;
 198:framework.c   **** #endif
 199:framework.c   **** 
 200:framework.c   ****   //set heap limits
 201:framework.c   ****   pHeapStart = &end;
 252              		.loc 1 201 0 253 0140 28209FE5 		ldr	r2, .L28+20 254 0144 28309FE5 		ldr	r3, .L28+24 255 0148 002083E5 		str	r2, [r3, #0] 202:framework.c   ****   pHeapEnd   = (unsigned char*)((STK_SADDR - 1) & 0xfffffffc);
 256              		.loc 1 202 0 257 014c 24209FE5 		ldr	r2, .L28+28 258 0150 24309FE5 		ldr	r3, .L28+32 259              		.loc 1 189 0 260              		@ lr needed for prologue 261              		.loc 1 202 0 262 0154 002083E5 		str	r2, [r3, #0] 203:framework.c   **** }
 263              		.loc 1 203 0 264 0158 1EFF2FE1 		bx	lr 265              	.L29: 266              		.align	2 267              	.L28: 268 015c 00000000 		.word	exceptionHandlerUndef 269 0160 34000000 		.word	exceptionHandlerSwi 270 0164 68000000 		.word	exceptionHandlerPabort 271 0168 9C000000 		.word	exceptionHandlerDabort 272 016c D0000000 		.word	exceptionHandlerFiq 273 0170 00000000 		.word	end 274 0174 00000000 		.word	pHeapStart 275 0178 E0F70040 		.word	1073805280 276 017c 00000000 		.word	pHeapEnd 277              	.LFE7: 278              		.size	exceptionHandlerInit, .-exceptionHandlerInit 279              		.align	2 280              		.global	lowLevelInit 281              		.type	lowLevelInit, %function 282              	lowLevelInit: 283              	.LFB8: 204:framework.c   **** 
 205:framework.c   **** /*****************************************************************************
 206:framework.c   ****  *
ARM GAS  /cygdrive/c/DOCUME~1/HOWARD~1/LOCALS~1/Temp/ccP8AgD9.s 			page 10 207:framework.c   ****  * Description:
 208:framework.c   ****  *    Initialize system functions and GPIO
 209:framework.c   ****  *
 210:framework.c   ****  ****************************************************************************/
 211:framework.c   **** void
 212:framework.c   **** lowLevelInit(void)
 213:framework.c   **** {
 284              		.loc 1 213 0 285              		@ Function supports interworking. 286              		@ args = 0, pretend = 0, frame = 0 287              		@ frame_needed = 0, uses_anonymous_args = 0 288              		@ link register save eliminated. 289              	.LVL21: 214:framework.c   ****   PINSEL0 = 0x00000000;  
 290              		.loc 1 214 0 291 0180 B0309FE5 		ldr	r3, .L32 292 0184 0020A0E3 		mov	r2, #0 293 0188 042083E4 		str	r2, [r3], #4 215:framework.c   ****   PINSEL1 = 0x00000000;  
 294              		.loc 1 215 0 295 018c 002083E5 		str	r2, [r3, #0] 216:framework.c   **** 
 217:framework.c   ****   IOSET = 0x00000000;       //Initialize pins to high level
 296              		.loc 1 217 0 297 0190 013943E2 		sub	r3, r3, #16384 298 0194 002083E5 		str	r2, [r3, #0] 218:framework.c   ****   IOCLR = 0xffffffff;       //Initialize pins to low level
 299              		.loc 1 218 0 300 0198 0000E0E3 		mvn	r0, #0 301 019c 083083E2 		add	r3, r3, #8 302 01a0 040003E4 		str	r0, [r3], #-4 219:framework.c   ****   IODIR = 0x00000000;       //Set pin direction
 303              		.loc 1 219 0 304 01a4 002083E5 		str	r2, [r3, #0] 220:framework.c   **** 
 221:framework.c   ****   //initialize the MAM (Memory Accelerator Module)
 222:framework.c   ****   MAMTIM = MAM_TIMING;       //number of CCLK to read from the FLASH
 305              		.loc 1 222 0 306 01a8 8C309FE5 		ldr	r3, .L32+4 307 01ac 0310A0E3 		mov	r1, #3 308 01b0 001083E5 		str	r1, [r3, #0] 223:framework.c   ****   MAMCR  = MAM_SETTING;      //0=disabled, 1=partly enabled (enabled for code prefetch, but not for 309              		.loc 1 223 0 310 01b4 0210A0E3 		mov	r1, #2 311 01b8 043043E2 		sub	r3, r3, #4 312 01bc 001083E5 		str	r1, [r3, #0] 224:framework.c   **** 
 225:framework.c   ****   //initialize the exception vector mapping
 226:framework.c   ****   MAMMAP = MAM_MAP;
 313              		.loc 1 226 0 314 01c0 0110A0E3 		mov	r1, #1 315 01c4 403083E2 		add	r3, r3, #64 316 01c8 001083E5 		str	r1, [r3, #0] 227:framework.c   **** 
 228:framework.c   ****   //set the peripheral bus speed, PCLK = CCLK / PBSD
 229:framework.c   **** 	VPBDIV = PBSD;
 317              		.loc 1 229 0ARM GAS  /cygdrive/c/DOCUME~1/HOWARD~1/LOCALS~1/Temp/ccP8AgD9.s 			page 11 318 01cc 031081E2 		add	r1, r1, #3 319 01d0 C03083E2 		add	r3, r3, #192 320 01d4 001083E5 		str	r1, [r3, #0] 230:framework.c   **** 	
 231:framework.c   **** 	//initialize VIC
 232:framework.c   ****   VICIntEnClr    = 0xFFFFFFFF;           /* Disable ALL interrupts                             */
 321              		.loc 1 232 0 322 01d8 60309FE5 		ldr	r3, .L32+8 323 01dc 0C0083E4 		str	r0, [r3], #12 233:framework.c   ****   VICProtection  = 0;                    /* Setup interrupt controller                         */
 324              		.loc 1 233 0 325 01e0 142083E4 		str	r2, [r3], #20 234:framework.c   ****   VICDefVectAddr = (unsigned int)0;      /* Direct unvectored IRQs to reset, i.e., address 0x0 */
 326              		.loc 1 234 0 327 01e4 CC2083E4 		str	r2, [r3], #204 235:framework.c   **** 
 236:framework.c   ****   VICVectAddr0   = (unsigned int)0;      /* Set the vector address                             */
 328              		.loc 1 236 0 329 01e8 042083E4 		str	r2, [r3], #4 237:framework.c   ****   VICVectAddr1   = (unsigned int)0;      /* Set the vector address                             */
 330              		.loc 1 237 0 331 01ec 042083E4 		str	r2, [r3], #4 238:framework.c   ****   VICVectAddr2   = (unsigned int)0;      /* Set the vector address                             */
 332              		.loc 1 238 0 333 01f0 042083E4 		str	r2, [r3], #4 239:framework.c   ****   VICVectAddr3   = (unsigned int)0;      /* Set the vector address                             */
 334              		.loc 1 239 0 335 01f4 042083E4 		str	r2, [r3], #4 240:framework.c   ****   VICVectAddr4   = (unsigned int)0;      /* Set the vector address                             */
 336              		.loc 1 240 0 337 01f8 042083E4 		str	r2, [r3], #4 241:framework.c   ****   VICVectAddr5   = (unsigned int)0;      /* Set the vector address                             */
 338              		.loc 1 241 0 339 01fc 042083E4 		str	r2, [r3], #4 242:framework.c   ****   VICVectAddr6   = (unsigned int)0;      /* Set the vector address                             */
 340              		.loc 1 242 0 341 0200 042083E4 		str	r2, [r3], #4 243:framework.c   ****   VICVectAddr7   = (unsigned int)0;      /* Set the vector address                             */
 342              		.loc 1 243 0 343 0204 042083E4 		str	r2, [r3], #4 244:framework.c   ****   VICVectAddr8   = (unsigned int)0;      /* Set the vector address                             */
 344              		.loc 1 244 0 345 0208 042083E4 		str	r2, [r3], #4 245:framework.c   ****   VICVectAddr9   = (unsigned int)0;      /* Set the vector address                             */
 346              		.loc 1 245 0 347 020c 042083E4 		str	r2, [r3], #4 246:framework.c   ****   VICVectAddr10  = (unsigned int)0;      /* Set the vector address                             */
 348              		.loc 1 246 0 349 0210 042083E4 		str	r2, [r3], #4 247:framework.c   ****   VICVectAddr11  = (unsigned int)0;      /* Set the vector address                             */
 350              		.loc 1 247 0 351 0214 042083E4 		str	r2, [r3], #4 248:framework.c   ****   VICVectAddr12  = (unsigned int)0;      /* Set the vector address                             */
 352              		.loc 1 248 0 353 0218 042083E4 		str	r2, [r3], #4 249:framework.c   ****   VICVectAddr13  = (unsigned int)0;      /* Set the vector address                             */
 354              		.loc 1 249 0ARM GAS  /cygdrive/c/DOCUME~1/HOWARD~1/LOCALS~1/Temp/ccP8AgD9.s 			page 12 355 021c 042083E4 		str	r2, [r3], #4 250:framework.c   ****   VICVectAddr14  = (unsigned int)0;      /* Set the vector address                             */
 356              		.loc 1 250 0 357 0220 042083E4 		str	r2, [r3], #4 358              		.loc 1 213 0 359              		@ lr needed for prologue 251:framework.c   ****   VICVectAddr15  = (unsigned int)0;      /* Set the vector address                             */
 360              		.loc 1 251 0 361 0224 002083E5 		str	r2, [r3, #0] 252:framework.c   **** 	
 253:framework.c   ****   //enable interrupts (both IRQ and FIQ) 
 254:framework.c   ****   asm volatile ("mrs r3, cpsr       \n\t"                          
 362              		.loc 1 254 0 363 0228 00300FE1 		mrs r3, cpsr        364 022c C030C3E3 		bic r3, r3, #0xC0   365 0230 03F029E1 		msr cpsr, r3        366              		 255:framework.c   ****                 "bic r3, r3, #0xC0  \n\t"                      
 256:framework.c   ****                 "msr cpsr, r3       \n\t"                          
 257:framework.c   ****                 :                                       
 258:framework.c   ****                 :                                       
 259:framework.c   ****                 : "r3" );
 260:framework.c   **** }
 367              		.loc 1 260 0 368 0234 1EFF2FE1 		bx	lr 369              	.L33: 370              		.align	2 371              	.L32: 372 0238 00C002E0 		.word	-536690688 373 023c 04C01FE0 		.word	-534790140 374 0240 14F0FFFF 		.word	-4076 375              	.LFE8: 376              		.size	lowLevelInit, .-lowLevelInit 377              		.align	2 378              		.global	eaInit 379              		.type	eaInit, %function 380              	eaInit: 381              	.LFB9: 261:framework.c   **** 
 262:framework.c   **** /*****************************************************************************
 263:framework.c   ****  *
 264:framework.c   ****  * Description:
 265:framework.c   ****  *    Initialize the consol
 266:framework.c   ****  *
 267:framework.c   ****  ****************************************************************************/
 268:framework.c   **** void
 269:framework.c   **** eaInit(void)
 270:framework.c   **** {
 382              		.loc 1 270 0 383              		@ Function supports interworking. 384              		@ args = 0, pretend = 0, frame = 0 385              		@ frame_needed = 0, uses_anonymous_args = 0 386              	.LVL22: 387 0244 04E02DE5 		str	lr, [sp, #-4]! 388              	.LCFI10: 271:framework.c   ****   //initialize the consol
 272:framework.c   ****   consolInit();
ARM GAS  /cygdrive/c/DOCUME~1/HOWARD~1/LOCALS~1/Temp/ccP8AgD9.s 			page 13 389              		.loc 1 272 0 390 0248 FEFFFFEB 		bl	consolInit 273:framework.c   ****   
 274:framework.c   **** #ifdef CONSOL_STARTUP_DELAY
 275:framework.c   ****   /* 276:framework.c   ****    * setup timer #1 for a short delay 277:framework.c   ****    */ 278:framework.c   ****   TIMER1_TCR = 0x02;          //stop and reset timer 391              		.loc 1 278 0 392 024c 50109FE5 		ldr	r1, .L40 393 0250 0230A0E3 		mov	r3, #2 394 0254 003081E5 		str	r3, [r1, #0] 279:framework.c   ****   TIMER1_PR  = 0x00;          //set prescaler to zero 395              		.loc 1 279 0 396 0258 48309FE5 		ldr	r3, .L40+4 397 025c 0020A0E3 		mov	r2, #0 398 0260 002083E5 		str	r2, [r3, #0] 280:framework.c   ****   TIMER1_MR0 = CONSOL_STARTUP_DELAY_LENGTH * ((FOSC * PLL_MUL)/ (1000000 * PBSD)); 399              		.loc 1 280 0 400 0264 40209FE5 		ldr	r2, .L40+8 401 0268 0C3083E2 		add	r3, r3, #12 402 026c 002083E5 		str	r2, [r3, #0] 281:framework.c   ****   TIMER1_IR  = 0xff;          //reset all interrrupt flags 403              		.loc 1 281 0 404 0270 FF20A0E3 		mov	r2, #255 405 0274 183043E2 		sub	r3, r3, #24 406 0278 142083E4 		str	r2, [r3], #20 282:framework.c   ****   TIMER1_MCR = 0x04;          //stop timer on match 407              		.loc 1 282 0 408 027c 0420A0E3 		mov	r2, #4 409 0280 002083E5 		str	r2, [r3, #0] 283:framework.c   ****   TIMER1_TCR = 0x01;          //start timer 410              		.loc 1 283 0 411 0284 0130A0E3 		mov	r3, #1 412 0288 003081E5 		str	r3, [r1, #0] 413              	.L35: 284:framework.c   ****    285:framework.c   ****   //wait until delay time has elapsed 286:framework.c   ****   while (TIMER1_TCR & 0x01) 414              		.loc 1 286 0 415 028c 10309FE5 		ldr	r3, .L40 416 0290 003093E5 		ldr	r3, [r3, #0] 417 0294 010013E3 		tst	r3, #1 418 0298 A100001A 		bne	.L35 287:framework.c   ****     ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -