FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [March 2007 Threads] Bug in the ez80Posted by Nobody/Anonymous on March 6, 2007 The timer_isr function implemented in C change the CPU flags before the assembly code save the "af" registers. The timer_isr must be written in assembler to come around(for ez80L92):
; .assume adl=1 .def _timer_isr .ref _vTaskIncrementTick .ref _vTaskSwitchContext .ref _pxCurrentTCB _timer_isr: ; portSAVE_CONTEXT(); PUSH IX push af ; save flags LD IX,0 ADD IX,SP in0 a,(80h) push bc push de push hl push iy ex af,af' exx push af push bc push de push hl ld ix,0 add ix,sp ld hl,(_pxCurrentTCB) ld (hl),ix CALL _vTaskIncrementTick
CALL _vTaskSwitchContext
; portRESTORE_CONTEXT_ISR(); ld hl,(_pxCurrentTCB) ld hl,(hl) ld sp,hl pop hl pop de pop bc pop af exx ex af,af' pop iy pop hl pop de pop bc pop af pop ix ei reti
Best regards: Ivar Jeppesen Embedit A/S Denmark
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|