diff --git a/README.md b/README.md index 3d38cf2af955c59d4736a561501497d92faea9c6..383832e5c28f84425344a16048bb08a80af4335d 100644 --- a/README.md +++ b/README.md @@ -84,8 +84,7 @@ - test.c, fx_s4716_double.c 와 fx_s4716_double.h를 make 명령어 하나로 자동으로 빌드하게 해줌 - gcc 컴파일러를 사용하였으며 mytest 실행파일과 각 c파일의 목적파일을 자동으로 생성 - - * -lm : math.h 라이브러리 추가 + * -lm : math.h 라이브러리 추가 - make clean 명령어를 통해 자신이 지우고 싶은 실행파일과 목적파일을 정하여 삭제할 수 있음 @@ -232,9 +231,9 @@ - 32비트 컴파일환경 곱하기 연산 -  +  - 32비트 환경의 경우 operator 곱하기 연산의 속도가 매우 느려서 큰 값끼리 곱할 수록 속도가 느려져서 2 -> 3 ->1순으로 속도의 순위가 정해진다. + 32비트 환경의 경우 operator 곱하기 연산의 속도가 매우 느려서 큰 값끼리 곱할 수록 속도가 느려져서 2 -> 3 ->1순으로 속도의 순위가 정해진다. - 64비트 컴파일환경 곱하기 연산 @@ -253,3 +252,47 @@  DIV연산에서 첫 값에 대한 쉬프트 연산의 크기 순으로 속도가 잘 나오는 것을 알 수 있다. DIV1의 경우 16 DIV2의 경우 8 DIV3의 경우 12 만큼 왼쪽 쉬프트를 해주었기에 1 -> 3 -> 2순이다. + + +## Project #3 (SRS & Test project with MISRA-C regulation) + +### Software Requirement Specification(SRS) + +1. Introduction + * 1.1 Purpose + * Fixed point arithmetic + * 1.2 Definitions, acronyms, and abbreviations + * fx : fixed point(고정 소수점 방식 사용) + * s : signed(부호 1비트 사용) + * 4716 : 정수부 47비트, 소수부 16비트 사용 + +2. Overall description + * 2.1 Product functions + * fx_s4716_add : 덧셈 + * fx_s4716_sub : 뺄셈 + * fx_s4716_mul : 곱셈 + * fx_s4716_div : 나눗셈 + * fx_s4716_sin : a의 sin값 + * fx_s4716_pow : a의 제곱 + * fx_s4716_sqrt : a의 제곱근 + * fx_s4716_pi : pi값 + * 2.2 Product execution + ```C + make + ./mytest + ``` + +3. Specific requirements + * Make first prototype fx_s4716_double.c with double and math.h define macro fx_s4716. + * Make first product fx_s4716_longlong.c with longlong define macro fx_s4716_longlong.h test program test.c. + * It assume that 64 bit computer and OS. + * Ignore overflow. + * 성능 비교 + +### MISRA-C regulation + +* [MISRA-C_specific](https://git.ajou.ac.kr/battle_c_6/fx_s4716/-/blob/master/MISRA_C_specific.pdf) +* [MISRA-C_summary](https://git.ajou.ac.kr/battle_c_6/fx_s4716/-/blob/master/MISRA_C_summary.pdf) + + +