TOPPERS/FMP커널 갱신이력

Release 1.2.0 과 Release 1.1.1 의 주요 차이점
  • 릴리즈 방식을 ASP와 동일하게 변경
  • 컴피규레이터 1.7.0 대응
  • ASP 1.7.0 대응
  • TTSP에 의한 검증완료
  • 다수의 버그 수정(상세 내용은 version.txt를 참조)
Release 1.1.1 과 Release 1.1.0 의 주요 차이점
  • apsh2ad_gcc(sh2a_dual_gcc)의존부 추가
  • kzm_ca9_gcc의존부 추가
  • t_rtsk의 다음 기동시의 할당된 프로세서 ID를 격납하는 멤버명 수정
  • 샘플 프로그램의 글로벌 타이머 방식 서포트
  • 시스템 로그 출력의 마이그레이션 대응
  • 시스템 로그 출력의 공유 대응
  • 기타 타겟 의존부 갱신
Release 1.1.0 과 Release 1.0.2 의 주요 차이점
  • 락 매크로 수정과 함수화
  • 인터럽트 처리 모델의 통합사양서 준거
  • 프로세서 간을 이동하는 API의 실행시간 개선
  • 프로세서마다 가지는 타겟 의존 정보의 PCB로의 통합
  • SH4A 서포트
  • 작은 버그 수정
Release 1.0.2 와 Release 1.0.1 의 주요 차이점
  • porting.txt 수정 및 추가 기술
  • CHECK_DISPATCH() 사용부분 변경
    CHECK_TSKCTX_UNL() 또는 CHECK_INTCTX_UNL() 으로 변경 태스크 디스패치가능 상태(dspflg)의 체크를 CPU락상태에서 체크하도록 변경. 해당 API는 다음과 같음
    • dataqueue.c: snd_dtq()
    • dataqueue.c: tsnd_dtq()
    • dataqueue.c: rcv_dtq()
    • dataqueue.c: trcv_dtq()
    • eventflag.c: wai_flg()
    • eventflag.c: twai_flg()
    • mailbox.c: rcv_mbx()
    • mailbox.c: trcv_mbx()
    • mempfix.c: get_mpf()
    • mempfix.c: tget_mpf()
    • pridataq.c: snd_pdq()
    • pridataq.c: tsnd_pdq()
    • pridataq.c: rcv_pdq()
    • pridataq.c: trcv_pdq()
    • semaphore.c: wai_sem()
    • semaphore.c: twai_sem()
    • task_sync.c: slp_tsk()
    • task_sync.c: tslp_tsk()
    • task_sync.c: dly_tsk()
  • CHECK_DISPATCH() 삭제
  • CHECK_TSKCTX_UNL()/CHECK_INTCTX_UNL() 변경
    sense_tskctx_unl()/sense_intctx_unl() 을 호출하도록 변경
  • sense_tskctx_unl()/sense_intctx_unl() 추가
  • sense_context()/[tix]_sense_lock() 마이그레이션 대응
    CPU락 해지 상태에서 호출되기 때문에, 실행중에 마이그레이션되어도 문제없도록 수정. 구체적으로는, CPU ID를 취득해서 CPU고유의 데이터를 엑세스하는 부분을 CPU락 상태에서 실행하도록 변경.
  • CHECK_NONSELF()의 삭제와 사용부분 수정
    인터럽트 금지전에 체크하면, 마이그레이션된 경우에, 다른 포르세서의 값을 읽을 가능성이 있기 떄문에, 인터럽트 락 후에 체크하도록 변경. 행당하는 API는 다음과 같음.
    • task_manage.c : ter_tsk() : 자이언트 락 용
    • task_manage.c : ter_tsk() : 프로세서 락·세립도 락 용
  • CHECK_LOCSPN() 삭제
    사용하지 않고 있기 때문에 삭제.
Release 1.0.1 과 Release 1.0.0 의 주요 차이점
  • 공통부
    • 디스패치 금지 상태의 프로세서의 태스트로부터 디스패치 허가 상태의 프로세서로 mrot_rdq해도 로테이션 되지 않던 문제 수정
    • call_texrtn()에서 다른 태스크로 디스패치할 경우의 문제를 수정. 태스크락을 취득한 상태로, 디스패치하고 있기 때문에, 해지하고 호출하도록 변경.
    • 개행코드를 LF로 통일.
    • 「CPU예외번호」가 없을 경우는 「예외번호」를 「CPU예외 핸들러번호」로 통일.
    • imact_tsk에서 프로세서ID의 체크가 빠져있던 문제를 수정.
    • 프로세서 락 상태의 T_ACQUIRE_NESTED_LOCK_AND_CHECK_RUNNABLE 수정
    • msta_cyc에서 TA_PHS을 지정하지 않은 주기핸들러의 기동시각을 기동위상으로 수정
    • mact_tsk에 의한 기동요구가 큐잉된 태스크를 ter_tsk해도 마이그레이션되지 않는 문제 수정
    • 밸리어 동기관련 코드의 루프변수에 volatile을 첨가
    • ext_tsk에서 마이그레이션하는 경우에 마이그레이션 큐잉이 클리어되지 않는 문제 수정
    • ref_spn이 CPU락 상태에서 정상종료하는 문제 수정
    • get_pid/iget_pid가 CPU락 상태에서 정상종료하는 문제를 수정
    • msta_alm()/imsta_alm()/msta_cyc()을 TPRC_INI지정시에 실행하면 E_ID가 반환되는 문제 수정
    • imsta_alm()을 TPRC_INI지정시에 실행해도 대상 알람핸들러가 기동되지 않는 문제 수정
    • 스핀락을 취득한 상태에서, loc_cpu()/iloc_cpu()/unl_cpu() /iunl_cpu()을 실행하면 E_CTX 에러가 되는 문제 수정
    • try_spn/itry_spn에서 이미 락을 획득하고 있는 경우의 에러코드가 E_TMOUT가 되는 문제 수정
    • ref_spn에서 다른 코어로부터 스핀락의 상태를 참조할 수 없던 문제 수정
    • 매크로명 변경(TPRC_INIT -> TPRC_INI)
    • unl_spn/iunl_spn의 에러코드 수정
    • ena_int/dis_int의 체크 관련 수정
    • sus_tsk 락 매크로 변경
    • T_ACQUIRE_NESTED_DUAL_LOCK_AND_CHECK_MIG() 수정
    • wait_tmout이 사용하는 락 매크로 수정
    • ext_tsk에서 사용하는 락 매크로 수정
    • sus_tsk에서 사용하는 락 매크로 수정
    • stp_cyc/ref_cyc에서 사용하는 락 매크로 수정
    • mrot_rdq에서 사용하는 락 매크로 수정
    • fsnd_dtq에서 사용하는 락 매크로 수정
    • can_wup에서 사용하는 락 매크로 수정
    • 다른 프로세서에 소속된 실행상태의 태스크에 대해 ref_tsk를 발행한 경우의 문제 수정
    • 미사양의 관리블럭이 생성되던 문제 수정
  • ARM 의존부
    • 「CPU예외번호」가 없을 경우는 「예외번호」를 「CPU예외 핸들러번호」로 통일.
    • 예외프레임에 넣을 예외 전의 인터럽트 우선도 마스크의 값을 타겟 의존의 값으로부터 외부표현으로 변경.
  • MPCore 의존부
    • CPUEXC3 와 CPUEXC4를 수정. 샘플프로그램용 정의(CPUEXC1...)을 타겟 의존부로 이동.
    • INTHDR_ENTRY()에서 extern선언을 출력하지 않도록 변경.
  • AT91SKYEY 의존부
    • newlib 서포트. 서포트에 의해, SkyEye는 TOPPERS프로젝트에서 공개하고 있는 SkyEye -V1.2 DeviceManager Extension 2.0.3 이후 버전이 필요하게 된다.
    • gcov 서포트.
    • lcov 서포트.
    • target_timer_initialize()에서 타이머 동기에 TIMER_CLOCK 값을 반영하도록 수정.
    • 성능평가용 매크로를 사이클카운터 값을 취득하도록 정의.
  • CT11MPCore 의존부
    • 샘플프로그램용 정의(CPUEXC1...)을 타겟 의존부로 이동.
  • Nios II 의존부
    • 「CPU예외번호」가 없을 경우는 「예외번호」를 「CPU예외 핸들러번호」로 통일.
  • 테스트 프로그램 관련
    • test/test_mact_tsk{1,2,3} 및 test/test_mig_tsk{1,2}이 동작하지 않는 문제를 수정.
    • 테스트 라이브러리에 배리어 동기함수를 추가
    • 체크포인트 표시시에 프로세서ID도 동시에 표시
    • 체크포인트 함수에서 인터럽트 락후에 프로세서 ID를 취득하고 있던 문제를 수정
    • 체크포인트 함수와 완료체크포인트에서의 PRCID 취득을 sil함수로 변경
    • test_spin_lock.c 수정.
    • test_mact_tsk2.c 수정.
    • CPU예외 테스트(싱글 프로세서)를 추가.
    • 태스크 예외 테스트(싱글 프로세서)를 추가.
    • 세마포어 테스트(싱글 프로세서)를 추가.
    • 시스템 상태에 관한 테스트(싱글 프로세서)를 추가.
  • 성능 평가 프로그램 관련
    • sig_sem의 실행시간 계측프로그램 추가