ਲਾਭ:
- AI ਨਾਲ ਮਾਈਕ੍ਰੋਕੰਟਰੋਲਰ ਫਰਮਵੇਅਰ ਪਿੰਜਰ, ਡਰਾਈਵਰ ਅਤੇ ਸਟੇਟ ਮਸ਼ੀਨ ਡਰਾਫਟ ਨੂੰ ਤੇਜ਼ ਕਰਨ ਦੀ ਸਮਰੱਥਾ
- ਏਆਈ ਸਹਾਇਤਾ ਨਾਲ ਰੁਕਾਵਟ, ਸਮਾਂ, ਨਿਗਰਾਨੀ ਅਤੇ ਘੱਟ ਪਾਵਰ ਤਰਕ ਦੀ ਸਮੀਖਿਆ ਕਰਨ ਦੀ ਸਮਰੱਥਾ
- ਸਥਿਰ ਵਿਸ਼ਲੇਸ਼ਣ, ਹਾਰਡਵੇਅਰ 'ਤੇ ਟੈਸਟਿੰਗ, ਅਤੇ ਸੁਰੱਖਿਆ ਲੋੜਾਂ ਦੁਆਰਾ AI-ਤਿਆਰ ਫਰਮਵੇਅਰ ਕੋਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਦੀ ਸਮਰੱਥਾ
ਇੱਕ ਏਮਬੈਡਡ ਸਿਸਟਮ ਇੱਕ ਮਾਈਕ੍ਰੋਕੰਟਰੋਲਰ (ਇੱਕ ਛੋਟਾ ਕੰਪਿਊਟਰ ਜਿਸ ਵਿੱਚ ਪ੍ਰੋਸੈਸਰ, ਮੈਮੋਰੀ ਅਤੇ ਪੈਰੀਫਿਰਲ ਇੱਕ ਸਿੰਗਲ ਚਿੱਪ 'ਤੇ ਰੱਖਦਾ ਹੈ) ਦੇ ਆਲੇ ਦੁਆਲੇ ਬਣਾਇਆ ਗਿਆ ਇੱਕ ਇਲੈਕਟ੍ਰਾਨਿਕ ਡਿਵਾਈਸ ਹੈ: ਇੱਕ ਖਾਸ ਕੰਮ ਕਰਨ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ: ਇੱਕ ਥਰਮੋਸਟੈਟ, ਇੱਕ ਮਾਡਮ, ਇੱਕ ਸੈਂਸਰ ਨੋਡ, ਇੱਕ ਮੋਟਰ ਡਰਾਈਵਰ। ਫਰਮਵੇਅਰ ਉਹ ਸਾਫਟਵੇਅਰ ਹੈ ਜੋ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਇਸ ਡਿਵਾਈਸ ਦੇ ਹਾਰਡਵੇਅਰ ਨੂੰ ਚਲਾਉਂਦਾ ਹੈ। ਇਸ ਯੂਨਿਟ ਵਿੱਚ ਤੁਸੀਂ ਦੇਖੋਗੇ ਕਿ ਫਰਮਵੇਅਰ ਡਿਵੈਲਪਮੈਂਟ (ਡਰਾਈਵਰ ਰਾਈਟਿੰਗ, ਸਟੇਟ ਮਸ਼ੀਨ, ਇੰਟਰੱਪਟ ਅਤੇ ਟਾਈਮਿੰਗ ਤਰਕ, ਘੱਟ ਪਾਵਰ ਪ੍ਰਬੰਧਨ) ਵਿੱਚ ਇੱਕ ਐਕਸਲੇਟਰ ਵਜੋਂ AI ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਨੀ ਹੈ। AI ਕੋਡਿੰਗ ਵਿੱਚ ਅਸਲ ਵਿੱਚ ਸ਼ਕਤੀਸ਼ਾਲੀ ਹੈ; ਪਰ ਏਮਬੈਡਡ ਸੰਸਾਰ ਵਿੱਚ, ਕੋਡ ਹਾਰਡਵੇਅਰ, ਰੀਅਲ ਟਾਈਮ, ਅਤੇ ਅਕਸਰ ਸੁਰੱਖਿਆ ਨਾਲ ਜੁੜਿਆ ਹੁੰਦਾ ਹੈ। ਇਸ ਲਈ AI ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੀ ਹਰ ਲਾਈਨ ਨੂੰ ਸਥਿਰ ਵਿਸ਼ਲੇਸ਼ਣ, ਰਜਿਸਟਰ/ਡੇਟਾਸ਼ੀਟ ਜਾਂਚ, ਅਤੇ ਹਾਰਡਵੇਅਰ ਵਿੱਚ ਅਸਲ ਟੈਸਟਿੰਗ ਵਿੱਚੋਂ ਲੰਘਣਾ ਚਾਹੀਦਾ ਹੈ।
ਕਿੱਥੇ ਮਜ਼ਬੂਤ ਹੈ, ਕਿੱਥੇ AI ਫਰਮਵੇਅਰ ਵਿੱਚ ਖ਼ਤਰਨਾਕ ਹੈ
ਫਰਮਵੇਅਰ ਦੇ "ਪਿੰਜਰ" ਅਤੇ "ਡਾਈ" ਹਿੱਸੇ 'ਤੇ AI ਬਹੁਤ ਮਜ਼ਬੂਤ ਹੈ: ਇੱਕ I2C/SPI ਡਰਾਈਵਰ ਦਾ ਢਾਂਚਾ, ਇੱਕ ਸਟੇਟ ਮਸ਼ੀਨ ਦਾ ਢਾਂਚਾ (ਤਰਕ ਜੋ ਡਿਵਾਈਸ ਦੇ ਰਾਜਾਂ ਅਤੇ ਪਰਿਵਰਤਨ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ), ਇੱਕ ਰਿੰਗ ਬਫਰ ਲਾਗੂ ਕਰਨਾ, ਇੱਕ ਨਿਰਦੇਸ਼ ਪਾਰਸਰ, ਇੱਕ ਟੈਸਟ ਪਿੰਜਰ। ਇਹ ਇੱਕ ਗੁੰਝਲਦਾਰ ਡੇਟਾਸ਼ੀਟ ਵਿੱਚ ਰਜਿਸਟਰ ਟੇਬਲ ਨੂੰ ਪੜ੍ਹ ਸਕਦਾ ਹੈ ਅਤੇ ਸ਼ੁਰੂਆਤੀ ਕੋਡ ਤਿਆਰ ਕਰ ਸਕਦਾ ਹੈ। ਇੱਕ ਗਲਤੀ ਦੀ ਵਿਆਖਿਆ ਕਰ ਸਕਦਾ ਹੈ, ਇੱਕ ਕੰਪਾਈਲਰ ਚੇਤਾਵਨੀ ਦੀ ਵਿਆਖਿਆ ਕਰ ਸਕਦਾ ਹੈ.
ਜਿੱਥੇ ਇਹ ਖ਼ਤਰਨਾਕ ਹੈ ਏਮਬੈਡਡ ਸਿਸਟਮ ਦਾ ਸਾਰ ਹੈ:
- ਰਜਿਸਟਰ ਪਤੇ ਅਤੇ ਬਿੱਟ ਖੇਤਰ: AI ਇੱਕ ਚਿੱਪ ਦੇ ਰਜਿਸਟਰ ਮੈਪ ਨੂੰ ਗਲਤ ਯਾਦ ਕਰ ਸਕਦਾ ਹੈ; ਹਰੇਕ ਪਤੇ ਅਤੇ ਬਿੱਟ ਨੂੰ ਡੇਟਾਸ਼ੀਟ ਤੋਂ ਪ੍ਰਮਾਣਿਤ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।
- ਸਮਾਂ ਅਤੇ ਅਸਲ ਸਮਾਂ: ਇੱਕ ਓਪਰੇਸ਼ਨ ਕਿੰਨੇ ਮਾਈਕ੍ਰੋਸਕਿੰਟ ਲੈਂਦਾ ਹੈ, ਕਿੰਨੀ ਵਾਰ ਰੁਕਾਵਟ ਆਉਂਦੀ ਹੈ, ਇਹ ਹਾਰਡਵੇਅਰ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ; AI ਭਵਿੱਖਬਾਣੀ ਕਰਦਾ ਹੈ, ਤੁਸੀਂ ਮਾਪਦੇ ਹੋ.
- ਇਕਸਾਰਤਾ: ਜੇਕਰ ਇੰਟਰੱਪਟ ਸਰਵਿਸ ਰੂਟੀਨ (ISR) ਅਤੇ ਮੁੱਖ ਲੂਪ ਦੇ ਵਿਚਕਾਰ ਸਾਂਝੇ ਕੀਤੇ ਵੇਰੀਏਬਲ ਅਸਥਿਰ ਅਤੇ ਪਰਮਾਣੂ ਪਹੁੰਚ ਦੁਆਰਾ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਹਨ, ਤਾਂ ਚੁੱਪ, ਗੈਰ-ਦੁਹਰਾਉਣਯੋਗ ਗਲਤੀਆਂ ਹੁੰਦੀਆਂ ਹਨ।
- ਸਰੋਤ ਸੀਮਾਵਾਂ: ਸਟੈਕ ਓਵਰਫਲੋ, ਮੈਮੋਰੀ ਲੀਕ, ਵਾਚਡੌਗ ਟਾਈਮਆਉਟ ਦਾ ਮਤਲਬ ਹੈ ਏਮਬੇਡਡ ਵਿੱਚ ਕਰੈਸ਼।
ਰੁਕਾਵਟ, ਸਮਾਂ ਅਤੇ ਨਿਗਰਾਨੀ
ਇੱਕ ਵਿਘਨ ਉਦੋਂ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਕੋਈ ਘਟਨਾ ਵਾਪਰਦੀ ਹੈ (ਡੇਟਾ ਪਹੁੰਚਿਆ, ਟਾਈਮਰ ਦੀ ਮਿਆਦ ਪੁੱਗ ਗਈ), ਪ੍ਰੋਸੈਸਰ ਮੁੱਖ ਕੰਮ ਨੂੰ ਛੱਡ ਦਿੰਦਾ ਹੈ ਅਤੇ ਇੱਕ ਸੇਵਾ ਰੁਟੀਨ (ISR: ਇੰਟਰੱਪਟ ਸਰਵਿਸ ਰੂਟੀਨ) ਤੇ ਜੰਪ ਕਰਦਾ ਹੈ। ISRs ਏਮਬੈਡਡ ਸਿਸਟਮ ਵਿੱਚ ਕੋਡ ਦੇ ਸਭ ਤੋਂ ਸੰਵੇਦਨਸ਼ੀਲ ਟੁਕੜੇ ਹਨ। ਬੁਨਿਆਦੀ ਨਿਯਮ: ISR ਛੋਟਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ (ਲੰਬਾ ਕੰਮ ਮੁੱਖ ਲੂਪ ਲਈ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਹੈ), ਇਸ ਵਿੱਚ ਕੋਈ ਬਲੌਕਿੰਗ ਓਪਰੇਸ਼ਨ (ਉਡੀਕ, ਪ੍ਰਿੰਟ) ਨਹੀਂ ਹੋਣੇ ਚਾਹੀਦੇ, ਸਾਂਝੇ ਵੇਰੀਏਬਲ ਸੁਰੱਖਿਅਤ ਕੀਤੇ ਜਾਣੇ ਚਾਹੀਦੇ ਹਨ।
ਵਾਚਡੌਗ ਇੱਕ ਸੁਰੱਖਿਆ ਵਿਧੀ ਹੈ ਜੋ ਆਪਣੇ ਆਪ ਹੀ ਡਿਵਾਈਸ ਨੂੰ ਰੀਬੂਟ ਕਰਦੀ ਹੈ ਜੇਕਰ ਸੌਫਟਵੇਅਰ ਕਰੈਸ਼ ਹੋ ਜਾਂਦਾ ਹੈ; ਫਰਮਵੇਅਰ ਇਸ ਨੂੰ ਨਿਯਮਿਤ ਤੌਰ 'ਤੇ "ਫੀਡ" ਕਰਦਾ ਹੈ, ਜੇ ਨਹੀਂ, ਤਾਂ ਸਿਸਟਮ ਰੀਸੈਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ. AI ਇਹਨਾਂ ਢਾਂਚਿਆਂ ਦਾ ਖਰੜਾ ਤਿਆਰ ਕਰਦਾ ਹੈ, ਪਰ ਨਿਗਰਾਨੀ ਦੀ ਮਿਆਦ, ਰੁਕਾਵਟ ਪਹਿਲ, ਅਤੇ ਸਮਾਂ-ਸਾਰਣੀ ਬਜਟ ਨੂੰ ਤੁਹਾਡੇ ਸਿਸਟਮ 'ਤੇ ਅਸਲ ਲੋਡ ਦੇ ਵਿਰੁੱਧ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।
ਸੰਕੇਤ: ਜਦੋਂ AI ਨੂੰ ISR ਪ੍ਰਿੰਟ ਕਰਦੇ ਹੋ, ਤਾਂ ਇਸਨੂੰ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ "ISR ਨੂੰ ਛੋਟਾ ਰੱਖੋ, ਕੋਈ ਬਲਾਕਿੰਗ ਨਹੀਂ, ਅਸਥਿਰ ਅਤੇ ਪਰਮਾਣੂ ਪਹੁੰਚ ਵਾਲੇ ਸ਼ੇਅਰਡ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਚਿੰਨ੍ਹਿਤ ਕਰੋ, ਇੱਕ ਫਲੈਗ ਦੇ ਨਾਲ ਮੁੱਖ ਲੂਪ ਨੂੰ ਲੰਬੀ ਨੌਕਰੀ ਸੌਂਪੋ।" ਫਿਰ ਕੋਡ ਵਿੱਚ ਲਾਈਨ ਦੁਆਰਾ ਲਾਈਨ ਦੀ ਜਾਂਚ ਕਰੋ ਜੋ ਇਹ ਪੈਦਾ ਕਰਦਾ ਹੈ ਕਿ ਇਹ ਨਿਯਮ ਅਸਲ ਵਿੱਚ ਲਾਗੂ ਕੀਤੇ ਗਏ ਹਨ.
ਘੱਟ ਪਾਵਰ ਅਤੇ ਸੁਰੱਖਿਆ
ਬੈਟਰੀ-ਸੰਚਾਲਿਤ ਡਿਵਾਈਸਾਂ ਵਿੱਚ ਘੱਟ ਪਾਵਰ ਪ੍ਰਬੰਧਨ ਮਹੱਤਵਪੂਰਨ ਹੈ: ਪ੍ਰੋਸੈਸਰ ਨੂੰ ਸੌਣ ਲਈ ਰੱਖਣਾ, ਪੈਰੀਫਿਰਲ ਬੰਦ ਕਰਨਾ, ਕਿਸੇ ਘਟਨਾ ਨਾਲ ਜਾਗਣਾ। AI ਸਲੀਪ ਮੋਡ ਪਰਿਵਰਤਨ ਅਤੇ ਵੇਕ-ਅੱਪ ਤਰਕ ਨੂੰ ਸਕੈਚ ਕਰਦਾ ਹੈ, ਪਰ ਅਸਲ ਵਰਤਮਾਨ ਖਪਤ ਸਿਰਫ ਮਾਪ ਦੁਆਰਾ ਜਾਣੀ ਜਾਂਦੀ ਹੈ (ਮਾਈਕ੍ਰੋਐਂਪੀਅਰ ਪੱਧਰ 'ਤੇ ਮੌਜੂਦਾ ਮੀਟਰ); AI ਕਹਿਣਾ "ਇਹ ਇਸ ਮੋਡ ਵਿੱਚ ~2 µA ਖਿੱਚਦਾ ਹੈ" ਇੱਕ ਅਨੁਮਾਨ ਹੈ।
ਸੁਰੱਖਿਆ ਦੇ ਦ੍ਰਿਸ਼ਟੀਕੋਣ ਤੋਂ, ਏਮਬੈਡਡ ਡਿਵਾਈਸਾਂ ਤੇਜ਼ੀ ਨਾਲ ਨੈੱਟਵਰਕ ਹੋ ਰਹੀਆਂ ਹਨ ਅਤੇ ਫਰਮਵੇਅਰ ਕਮਜ਼ੋਰੀਆਂ (ਬਫਰ ਓਵਰਫਲੋ, ਅਣਅਧਿਕਾਰਤ ਇਨਪੁਟ, ਕਮਜ਼ੋਰ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫੀ, ਓਪਨ ਡੀਬੱਗ ਇੰਟਰਫੇਸ) ਗੰਭੀਰ ਜੋਖਮ ਹਨ। AI ਤੁਹਾਨੂੰ ਸੁਰੱਖਿਅਤ ਕੋਡਿੰਗ ਸਿਧਾਂਤਾਂ ਦੀ ਯਾਦ ਦਿਵਾ ਸਕਦਾ ਹੈ, ਪਰ ਲੋੜ ਪੈਣ 'ਤੇ ਜਨਰੇਟ ਕੀਤੇ ਕੋਡ ਦੀ ਸੁਰੱਖਿਆ ਸਥਿਰ ਵਿਸ਼ਲੇਸ਼ਣ ਟੂਲਸ, ਕੋਡ ਸਮੀਖਿਆ ਅਤੇ ਸੁਰੱਖਿਆ ਜਾਂਚ ਦੁਆਰਾ ਪ੍ਰਮਾਣਿਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਸੁਰੱਖਿਆ-ਨਾਜ਼ੁਕ ਪ੍ਰਣਾਲੀਆਂ (ਮੈਡੀਕਲ, ਆਟੋਮੋਟਿਵ, ਉਦਯੋਗਿਕ) ਵਿੱਚ AI ਆਉਟਪੁੱਟ ਨੂੰ ਕਦੇ ਵੀ ਸਮਰੱਥ ਇੰਜੀਨੀਅਰ ਦੀ ਪ੍ਰਵਾਨਗੀ ਅਤੇ ਸੰਬੰਧਿਤ ਸੁਰੱਖਿਆ ਮਿਆਰਾਂ (ਜਿਵੇਂ ਕਿ IEC 61508, ISO 26262) ਦੁਆਰਾ ਲੋੜੀਂਦੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਨੂੰ ਨਹੀਂ ਬਦਲਣਾ ਚਾਹੀਦਾ ਹੈ।
ਤਿੰਨ ਛੋਟੇ ਕੇਸ
ਕੇਸ 1 - ਅਸੁਰੱਖਿਅਤ ਸਾਂਝਾ ਵੇਰੀਏਬਲ। ਇੱਕ ਇੰਜੀਨੀਅਰ ਇੱਕ UART ਨੂੰ AI ਤੋਂ ਕੋਡ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਬੇਨਤੀ ਕਰਦਾ ਹੈ। ਕੋਡ ISR ਵਿੱਚ ਇੱਕ ਕਾਊਂਟਰ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ ਅਤੇ ਮੁੱਖ ਲੂਪ ਇਸ ਕਾਊਂਟਰ ਨੂੰ ਪੜ੍ਹਦਾ ਹੈ; ਪਰ ਕਾਊਂਟਰ ਅਸਥਿਰ ਨਹੀਂ ਹੈ ਅਤੇ ਮਲਟੀਬਾਈਟ ਰੀਡ ਪਰਮਾਣੂ ਨਹੀਂ ਹੈ। ਡਿਵਾਈਸ ਜ਼ਿਆਦਾਤਰ ਸਮਾਂ ਕੰਮ ਕਰਦੀ ਹੈ, ਪਰ ਕਦੇ-ਕਦਾਈਂ ਇਹ ਡੇਟਾ ਦੀ ਗਿਣਤੀ ਨੂੰ ਗਲਤ ਪੜ੍ਹਦੀ ਹੈ ਅਤੇ ਗਲਤੀ ਨੂੰ ਦੁਹਰਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ ਹੈ। ਸਥਿਰ ਵਿਸ਼ਲੇਸ਼ਣ ਅਤੇ ਕੋਡ ਸਮੀਖਿਆ ਲਾਪਤਾ ਅਸਥਿਰ ਕੈਚ; ਜਦੋਂ ਕਾਊਂਟਰ ਸੁਰੱਖਿਅਤ ਹੁੰਦਾ ਹੈ ਤਾਂ ਗਲਤੀ ਗਾਇਬ ਹੋ ਜਾਂਦੀ ਹੈ। ਸਬਕ: ਏਆਈ ਕੋਡ ਵਿੱਚ ਸਮਕਾਲੀ ਗਲਤੀਆਂ ਅਕਸਰ ਅਤੇ ਧੋਖੇਬਾਜ਼ ਹੁੰਦੀਆਂ ਹਨ; ਇਸ ਨੂੰ ਪੜ੍ਹਨਾ ਅਤੇ ਤਸਦੀਕ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ।
ਕੇਸ 2 - ਗਲਤ ਰਜਿਸਟਰ ਬਿੱਟ। ਇੱਕ ਇੰਟਰਨ AI ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੇ ADC ਸ਼ੁਰੂਆਤੀ ਕੋਡ ਨੂੰ ਅੱਪਲੋਡ ਕਰਦਾ ਹੈ; ADC ਅਚਾਨਕ ਮੁੱਲ ਪੜ੍ਹਦਾ ਹੈ। ਡੇਟਾਸ਼ੀਟ ਨਾਲ ਇਸਦੀ ਤੁਲਨਾ ਕਰਦੇ ਹੋਏ, ਇਹ ਪ੍ਰਤੀਤ ਹੁੰਦਾ ਹੈ ਕਿ AI ਨੇ ਗਲਤ ਸਥਾਨ 'ਤੇ ਇੱਕ ਸੰਰਚਨਾ ਬਿੱਟ ਸੈੱਟ ਕੀਤਾ ਹੈ (ਚਿੱਪ ਦੇ ਵੱਖਰੇ ਰੂਪ ਲਈ ਨਕਸ਼ਾ)। ਇੱਕ ਵਾਰ ਬਿੱਟ ਠੀਕ ਹੋ ਜਾਣ 'ਤੇ, ADC ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ। ਪਾਠ: ਡੇਟਾਸ਼ੀਟ ਦੇ ਸਹੀ ਰੂਪ ਦੇ ਵਿਰੁੱਧ ਹਰੇਕ ਰਜਿਸਟਰ ਸਪੈਲਿੰਗ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।
ਕੇਸ 3 - ਸਹੀ ਵਰਤੋਂ। ਇੱਕ ਇੰਜੀਨੀਅਰ ਇੱਕ ਗੁੰਝਲਦਾਰ ਸੈਂਸਰ ਪ੍ਰੋਟੋਕੋਲ ਲਈ ਇੱਕ ਸਟੇਟ ਮਸ਼ੀਨ ਪਿੰਜਰ ਲਈ ਏਆਈ ਨੂੰ ਪੁੱਛਦਾ ਹੈ; ਰਾਜਾਂ, ਪਰਿਵਰਤਨ, ਅਤੇ ਸਮਾਂ ਸਮਾਪਤੀ ਸ਼ਾਖਾਵਾਂ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ। AI ਇੱਕ ਸਾਫ਼, ਪੜ੍ਹਨਯੋਗ ਢਾਂਚਾ ਤਿਆਰ ਕਰਦਾ ਹੈ। ਇੰਜੀਨੀਅਰ ਇਸ ਫਰੇਮਵਰਕ ਨੂੰ ਲੈਂਦਾ ਹੈ, ਡੇਟਾਸ਼ੀਟ ਨਾਲ ਹਰੇਕ ਰਜਿਸਟਰ ਐਕਸੈਸ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ, ਔਸਿਲੋਸਕੋਪ ਨਾਲ ਸਮੇਂ ਨੂੰ ਮਾਪਦਾ ਹੈ, ਅਤੇ ਹਾਰਡਵੇਅਰ ਵਿੱਚ ਇਸਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ। ਵਿਕਾਸ ਕੁਝ ਦਿਨਾਂ ਦੀ ਬਜਾਏ ਕੁਝ ਘੰਟਿਆਂ ਵਿੱਚ ਖਤਮ ਹੋ ਜਾਂਦਾ ਹੈ। ਪਾਠ: AI ਪਿੰਜਰ ਨੂੰ ਤੇਜ਼ ਕਰਦਾ ਹੈ; ਇੰਜੀਨੀਅਰ ਵੈਰੀਫਿਕੇਸ਼ਨ ਕਰਦਾ ਹੈ।
ਕਾਪੀ ਕਰਨ ਯੋਗ ਪ੍ਰੋਂਪਟ ਟੈਂਪਲੇਟਸ
ਡ੍ਰਾਈਵਰ ਸਕੈਲਟਨ ਟੈਂਪਲੇਟ"[ਚਿੱਪ/ਪੈਰੀਫਿਰਲ] ਲਈ ਇੱਕ [I2C/SPI/UART] ਡ੍ਰਾਈਵਰ ਦਾ ਪਿੰਜਰ ਲਿਖੋ: ਸ਼ੁਰੂਆਤ, ਪੜ੍ਹਨਾ, ਲਿਖਣਾ, ਗਲਤੀ ਹੈਂਡਲਿੰਗ ਫੰਕਸ਼ਨ। ਪਲੇਸਹੋਲਡਰ ਵਿੱਚ ਰਜਿਸਟਰ ਪਤੇ ਅਤੇ ਬਿੱਟ ਖੇਤਰਾਂ ਨੂੰ ਛੱਡੋ (ਜਿਵੇਂ ਕਿ REG_XXX) ਅਤੇ ਇਸ ਦੀ ਬਜਾਏ 'ਟਾਇਮ ਆਊਟ' ਤੋਂ 'ਟਾਇਮਆਊਟ' ਅਤੇ ਨੋਟ ਕਰੋ। blockingwait ਦੱਸੋ ਕਿ ਹਰੇਕ ਫੰਕਸ਼ਨ ਇੱਕ ਟਿੱਪਣੀ ਲਾਈਨ ਨਾਲ ਕੀ ਮੰਨਦਾ ਹੈ।"
ISR ਸੁਰੱਖਿਆ ਟੈਂਪਲੇਟ"ਹੇਠ ਦਿੱਤੇ ਇਵੈਂਟ ਲਈ ਇੱਕ ਇੰਟਰੱਪਟ ਸਰਵਿਸ ਰੁਟੀਨ (ISR) ਡਰਾਫਟ ਲਿਖੋ: [ਘਟਨਾ]। ਨਿਯਮ: ISR ਨੂੰ ਛੋਟਾ ਰੱਖੋ, ਬਲਾਕ ਨਾ ਕਰੋ, ਸ਼ੇਅਰਡ ਵੇਰੀਏਬਲਾਂ ਨੂੰ vivolatile ਅਤੇ ਪਰਮਾਣੂ ਪਹੁੰਚ ਨਾਲ ਚਿੰਨ੍ਹਿਤ ਕਰੋ, ਇੱਕ ਫਲੈਗ ਦੇ ਨਾਲ ਮੁੱਖ ਲੂਪ ਨੂੰ ਲੰਮੀ ਨੌਕਰੀ ਸੌਂਪੋ। ਕੋਡ ਦੇ ਅੰਤ ਵਿੱਚ, ਇਹ ਨਿਯਮ ਲਾਗੂ ਕਰੋ ਕਿ ਹਰ ਇੱਕ I ਜਿੱਥੇ ਵੀ ਲਾਗੂ ਹੋ ਸਕਦਾ ਹੈ।"
ਸਟੇਟ ਮਸ਼ੀਨ ਟੈਂਪਲੇਟ "ਹੇਠ ਦਿੱਤੇ ਪ੍ਰੋਟੋਕੋਲ/ਪ੍ਰਕਿਰਿਆ ਲਈ ਇੱਕ ਸਟੇਟ ਮਸ਼ੀਨ ਪਿੰਜਰ ਲਿਖੋ: [ਰਾਜਾਂ, ਇਵੈਂਟਾਂ, ਪਰਿਵਰਤਨ, ਅਤੇ ਸਮਾਂ-ਆਉਟ ਦਾ ਵਰਣਨ ਕਰੋ]। ਹਰੇਕ ਰਾਜ ਲਈ ਐਂਟਰੀ/ਐਗਜ਼ਿਟ ਐਕਸ਼ਨ ਅਤੇ ਗਲਤੀ/ਟਾਈਮਆਉਟ ਸ਼ਾਖਾ ਨਿਰਧਾਰਤ ਕਰੋ। ਹਾਰਡਵੇਅਰ-ਵਿਸ਼ੇਸ਼ ਮੁੱਲ (ਰਜਿਸਟਰ, ਮਿਆਦ) ਨੂੰ ਪਲੇਸਹੋਲਡਰ ਦੇ ਤੌਰ 'ਤੇ ਛੱਡੋ ਅਤੇ ਨਾ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"
ਕੋਡ ਰਿਵਿਊ ਟੈਮਪਲੇਟ "ਹੇਠ ਦਿੱਤੇ ਫਰਮਵੇਅਰ ਕੋਡ ਨੂੰ ਏਮਬੈਡ ਕੀਤੇ ਦ੍ਰਿਸ਼ਟੀਕੋਣ ਅਤੇ ਫਲੈਗ ਜੋਖਮਾਂ ਤੋਂ ਜਾਂਚੋ: ਅਸੁਰੱਖਿਅਤ ਸ਼ੇਅਰਡ ਵੇਰੀਏਬਲ (ਅਸਥਿਰ/ਪਰਮਾਣੂ), ISR ਵਿੱਚ ਲੰਮਾ/ਬਲਾਕ ਕਰਨ ਦੀ ਕਾਰਵਾਈ, ਸਟੈਕ ਓਵਰਫਲੋ ਦਾ ਜੋਖਮ, ਸਮਾਂ ਸਮਾਪਤੀ ਤੋਂ ਬਿਨਾਂ ਉਡੀਕ ਕਰੋ, ਗਲਤੀਆਂ ਰਜਿਸਟਰ ਕਰੋ, ਵਾਚਡੌਗ ਫੀਡ। ਸੁਝਾਅ ਦਿਓ ਕਿ ਮੈਨੂੰ ਹਰੇਕ ਲਈ ਜਾਂਚ/ਪੜਤਾਲ ਕਿਵੇਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ।
ਕਮਜ਼ੋਰ ਪ੍ਰੋਂਪਟ / ਮਜ਼ਬੂਤ ਪ੍ਰੋਂਪਟ
ਕਮਜ਼ੋਰ ਪ੍ਰੋਂਪਟ: "ਮੈਨੂੰ ਇੱਕ UART ਡਰਾਈਵਰ ਲਿਖੋ।"
ਮਜ਼ਬੂਤ ਪ੍ਰੋਂਪਟ: "[ਮਾਈਕ੍ਰੋਕੰਟਰੋਲਰ] ਲਈ ਇੱਕ ਇੰਟਰੱਪਟ-ਅਧਾਰਿਤ UART ਰਿਸੀਵ ਡ੍ਰਾਈਵਰ ਫਰੇਮਵਰਕ ਲਿਖੋ। ਇੱਕ ਰਿੰਗ ਬਫਰ ਦੀ ਵਰਤੋਂ ਕਰੋ; ISR ਨੂੰ ਛੋਟਾ ਰੱਖੋ ਅਤੇ ਸਿਰਫ਼ ਬਫਰ ਨੂੰ ਲਿਖੋ, ਮੁੱਖ ਲੂਪ ਵਿੱਚ ਪ੍ਰੋਸੈਸਿੰਗ ਕਰੋ। ਸ਼ੇਅਰਡ ਸੂਚਕਾਂਕ ਨੂੰ ਅਸਥਿਰ ਅਤੇ ਪਰਮਾਣੂ ਬਣਾਓ। ਪਲੇਸਹੋਲਡਰਾਂ ਵਿੱਚ ਰਜਿਸਟਰ ਪਤਿਆਂ ਨੂੰ ਛੱਡੋ, ਕੋਡਸ਼ੀਟ ਦੀ ਅੰਤਮ ਸੂਚੀ ਵਿੱਚ ਜਾਂਚ ਕਰਨ ਲਈ ਉਹਨਾਂ ਨੂੰ ਮਾਰਕ ਕਰੋ। ਸਮਰੂਪਤਾ ਅਤੇ ਸਮੇਂ ਦੀਆਂ ਸ਼ਰਤਾਂ।"
ਕਮਜ਼ੋਰ ਪ੍ਰੋਂਪਟ ਕੋਡ ਪੈਦਾ ਕਰਦਾ ਹੈ ਜੋ ਹਾਰਡਵੇਅਰ ਅਤੇ ਸਮਕਾਲੀ ਅੰਨ੍ਹਾ ਹੈ; ਸ਼ਕਤੀਸ਼ਾਲੀ ਪ੍ਰੋਂਪਟ ਏਮਬੈਡਡ ਨਿਯਮ ਲਾਗੂ ਕਰਦਾ ਹੈ ਅਤੇ ਪੁਸ਼ਟੀਕਰਨ ਸੂਚੀ ਲਈ ਪ੍ਰੋਂਪਟ ਕਰਦਾ ਹੈ।
ਫਰਮਵੇਅਰ ਪੁਸ਼ਟੀਕਰਨ ਪਰਤਾਂ
ਪਰਤ
ਕੀ ਫੜਦਾ ਹੈ
ਏਆਈ ਦੀ ਭੂਮਿਕਾ
ਡਾਟਾਸ਼ੀਟ ਜਾਂਚ
ਗਲਤ ਰਜਿਸਟਰ/ਬਿੱਟ
ਪਲੇਸਹੋਲਡਰ ਅਤੇ ਕੰਟਰੋਲ ਨੋਟ ਤਿਆਰ ਕਰਦਾ ਹੈ
ਸਥਿਰ ਵਿਸ਼ਲੇਸ਼ਣ (ਲਿੰਟਰ)
ਅਸਥਿਰ, ਕਿਸਮ, ਸੀਮਾ ਤਰੁੱਟੀਆਂ
ਨਿਯਮ ਸੂਚੀ ਅਤੇ ਵਿਆਖਿਆ
ਕੰਪਾਈਲਰ ਚੇਤਾਵਨੀਆਂ
ਅਪ੍ਰਤੱਖ ਰੂਪਾਂਤਰਨ, ਅਣਵਰਤਿਆ ਮੁੱਲ
ਚੇਤਾਵਨੀ ਟਿੱਪਣੀ
ਹਾਰਡਵੇਅਰ ਵਿੱਚ ਟੈਸਟਿੰਗ
ਸਮਾਂ, ਅਸਲ ਵਿਹਾਰ
ਟੈਸਟ ਦ੍ਰਿਸ਼ ਸੁਝਾਅ
ਔਸਿਲੋਸਕੋਪ/ਵਿਸ਼ਲੇਸ਼ਕ
ਸਿਗਨਲ ਅਤੇ ਪ੍ਰੋਟੋਕੋਲ ਸ਼ੁੱਧਤਾ
ਮਾਪ ਬਿੰਦੂ ਅਤੇ ਉਮੀਦ ਕੀਤੀ ਤਰੰਗ
ਸਾਵਧਾਨ: ਸਿਰਫ਼ ਕਿਉਂਕਿ ਇੱਕ ਫਰਮਵੇਅਰ "ਕੰਪਾਈਲ" ਅਤੇ "ਜ਼ਿਆਦਾਤਰ ਸਮਾਂ ਕੰਮ ਕਰਦਾ ਹੈ" ਦਾ ਮਤਲਬ ਇਹ ਨਹੀਂ ਹੈ ਕਿ ਇਹ ਸਹੀ ਹੈ। ਸਮਰੂਪਤਾ ਅਤੇ ਸਮੇਂ ਦੀਆਂ ਗਲਤੀਆਂ ਸਿਰਫ ਕੁਝ ਸ਼ਰਤਾਂ ਅਧੀਨ ਹੁੰਦੀਆਂ ਹਨ; ਇਸ ਲਈ ਹਾਰਡਵੇਅਰ ਵਿੱਚ ਸਥਿਰ ਵਿਸ਼ਲੇਸ਼ਣ ਅਤੇ ਅਸਲ ਜਾਂਚ ਲਾਜ਼ਮੀ ਹੈ।
ਆਮ ਗਲਤੀਆਂ
- ਸ਼ੇਅਰਡ ਵੇਰੀਏਬਲ ਦੀ ਸੁਰੱਖਿਆ ਨਹੀਂ ਕਰ ਰਿਹਾ। ISR ਅਤੇ ਮੁੱਖ ਲੂਪ ਵਿਚਕਾਰ ਡੇਟਾ ਅਸਥਿਰ ਅਤੇ ਪਰਮਾਣੂ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।
- ਡੇਟਾਸ਼ੀਟ ਨਾਲ ਰਜਿਸਟਰ ਪਤੇ/ਬਿੱਟ ਦੀ ਪੁਸ਼ਟੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ। AI ਗਲਤ ਰੂਪ ਨੂੰ ਮੈਪ ਕਰ ਸਕਦਾ ਹੈ।
- ISR ਨੂੰ ਲੰਮਾ ਰੱਖਣਾ ਜਾਂ ਇਸਦੇ ਅੰਦਰ ਬਲਾਕ ਕਰਨਾ. ਸਿਸਟਮ ਜਵਾਬ ਨਹੀਂ ਦੇ ਸਕਦਾ ਹੈ, ਰੁਕਾਵਟਾਂ ਖੁੰਝ ਗਈਆਂ ਹਨ।
- ਬਿਨਾਂ ਮਾਪ ਦੇ ਸਮੇਂ ਨੂੰ ਮੰਨਣਾ। ਅਸਲ ਸਮਾਂ ਹਾਰਡਵੇਅਰ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ; ਇੱਕ ਔਸੀਲੋਸਕੋਪ ਨਾਲ ਪ੍ਰਮਾਣਿਤ.
- AI ਪ੍ਰਵਾਨਗੀ ਲਈ ਸੁਰੱਖਿਆ/ਸੁਰੱਖਿਆ-ਨਾਜ਼ੁਕ ਕੋਡ ਨੂੰ ਛੱਡਣਾ। ਇੱਕ ਸਮਰੱਥ ਇੰਜੀਨੀਅਰ ਅਤੇ ਸੰਬੰਧਿਤ ਮਿਆਰੀ ਪ੍ਰਕਿਰਿਆ ਜ਼ਰੂਰੀ ਹੈ।
ਸਾਰੰਸ਼ ਵਿੱਚ
ਇਸ ਯੂਨਿਟ ਵਿੱਚ ਤੁਸੀਂ ਫਰਮਵੇਅਰ ਪਿੰਜਰ, ਡਰਾਈਵਰ, ਸਟੇਟ ਮਸ਼ੀਨ ਅਤੇ ISR ਸਕੈਚ ਬਣਾਉਣ ਵਿੱਚ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਐਕਸਲੇਟਰ ਵਜੋਂ AI ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਹੈ। ਪਰ ਏਮਬੈਡਡ ਸੰਸਾਰ ਵਿੱਚ, ਕੋਡ ਹਾਰਡਵੇਅਰ, ਰੀਅਲ ਟਾਈਮ, ਅਤੇ ਸੁਰੱਖਿਆ ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ: ਰਜਿਸਟਰ/ਬਿੱਟ ਮੁੱਲਾਂ ਨੂੰ ਡੇਟਾਸ਼ੀਟ ਤੋਂ ਪ੍ਰਮਾਣਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਸਮਰੂਪਤਾ ਨੂੰ ਸਥਿਰ ਵਿਸ਼ਲੇਸ਼ਣ ਤੋਂ ਪ੍ਰਮਾਣਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਸਮਾਂ ਔਸੀਲੋਸਕੋਪ ਤੋਂ ਪ੍ਰਮਾਣਿਤ ਹੁੰਦਾ ਹੈ, ਵਿਹਾਰ ਨੂੰ ਹਾਰਡਵੇਅਰ ਵਿੱਚ ਅਸਲ ਟੈਸਟਿੰਗ ਤੋਂ ਪ੍ਰਮਾਣਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। AI ਮਿੰਟਾਂ ਵਿੱਚ ਪਿੰਜਰ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ; ਇੰਜੀਨੀਅਰ ਸਹੀ, ਸੁਰੱਖਿਅਤ ਅਤੇ ਸਮੇਂ 'ਤੇ ਕੰਮ ਕਰ ਰਹੇ ਫਰਮਵੇਅਰ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ। ਸੁਰੱਖਿਆ-ਨਾਜ਼ੁਕ ਪ੍ਰਣਾਲੀਆਂ ਵਿੱਚ, AI ਆਉਟਪੁੱਟ ਸੰਬੰਧਿਤ ਸੁਰੱਖਿਆ ਮਿਆਰ ਦੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਅਤੇ ਸਮਰੱਥ ਇੰਜੀਨੀਅਰ ਦੀ ਪ੍ਰਵਾਨਗੀ ਨੂੰ ਨਹੀਂ ਬਦਲਦਾ ਹੈ।
ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਕੰਮ
ਇੱਕ ਪੈਰੀਫਿਰਲ ਚੁਣੋ (ਉਦਾਹਰਨ ਲਈ ਇੱਕ I2C ਸੈਂਸਰ)। "ਡ੍ਰਾਈਵਰ ਪਿੰਜਰ" ਟੈਂਪਲੇਟ ਦੇ ਨਾਲ, ਏਆਈ ਨੂੰ ਇੱਕ ਡਰਾਈਵਰ ਪਿੰਜਰ ਲਈ ਪੁੱਛੋ ਜੋ ਪਲੇਸਹੋਲਡਰਾਂ ਵਿੱਚ ਰਜਿਸਟਰ ਛੱਡਦਾ ਹੈ। ਫਿਰ "ISR ਸੁਰੱਖਿਆ" ਟੈਮਪਲੇਟ ਨਾਲ ਇਸ ਸੈਂਸਰ ਤੋਂ ਡਾਟਾ-ਰੈਡੀ ਇੰਟਰੱਪਟ ਲਈ ਇੱਕ ISR ਸਕੈਚ ਤਿਆਰ ਕਰੋ। ਅੰਤ ਵਿੱਚ, ਏਮਬੈਡ ਕੀਤੇ ਜੋਖਮਾਂ ਲਈ "ਕੋਡ ਸਮੀਖਿਆ" ਟੈਮਪਲੇਟ ਨਾਲ ਤਿਆਰ ਕੀਤੇ ਕੋਡ ਨੂੰ ਸਕੈਨ ਕਰੋ ਅਤੇ ਘੱਟੋ-ਘੱਟ ਤਿੰਨ ਪੁਸ਼ਟੀਕਰਨ/ਟੈਸਟਿੰਗ ਪੜਾਅ ਲਿਖੋ।
ਚੈੱਕਲਿਸਟ
- [ ] ਮੈਂ ਸਹੀ ਡੇਟਾਸ਼ੀਟ ਵੇਰੀਐਂਟ ਤੋਂ ਹਰੇਕ ਰਜਿਸਟਰ ਪਤੇ ਅਤੇ ਬਿੱਟ ਦੀ ਪੁਸ਼ਟੀ ਕੀਤੀ ਹੈ।
- [ ] ਮੈਂ ISR ਅਤੇ ਮੁੱਖ ਲੂਪ ਅਸਥਿਰ ਅਤੇ ਪਰਮਾਣੂ ਵਿਚਕਾਰ ਸਾਂਝੇ ਵੇਰੀਏਬਲ ਬਣਾਏ ਹਨ।
- [ ] ਮੈਂ ISR ਨੂੰ ਛੋਟਾ ਰੱਖਿਆ, ਬਲਾਕਿੰਗ ਨਹੀਂ ਕੀਤੀ, ਲੰਮੀ ਨੌਕਰੀ ਨੂੰ ਮੁੱਖ ਲੂਪ ਨੂੰ ਸੌਂਪ ਦਿੱਤਾ।
- [ ] ਮੈਂ ਹਾਰਡਵੇਅਰ ਅਤੇ ਔਸਿਲੋਸਕੋਪ ਨਾਲ ਸਮੇਂ ਅਤੇ ਅਸਲ ਵਿਵਹਾਰ ਦੀ ਜਾਂਚ ਕਰਨ ਦੀ ਯੋਜਨਾ ਬਣਾਈ ਹੈ।
- [ ] ਮੈਂ ਸਥਿਰ ਵਿਸ਼ਲੇਸ਼ਣ ਅਤੇ ਕੰਪਾਈਲਰ ਚੇਤਾਵਨੀਆਂ ਨਾਲ ਕੋਡ ਨੂੰ ਸਕੈਨ ਕੀਤਾ।
- [] ਮੈਂ ਸੁਰੱਖਿਆ/ਸੁਰੱਖਿਆ-ਨਾਜ਼ੁਕ ਹਿੱਸਿਆਂ ਨੂੰ ਇੱਕ ਸਮਰੱਥ ਇੰਜੀਨੀਅਰ ਦੀ ਪ੍ਰਵਾਨਗੀ ਅਤੇ ਸੰਬੰਧਿਤ ਮਿਆਰੀ ਪ੍ਰਕਿਰਿਆ 'ਤੇ ਛੱਡ ਦਿੱਤਾ ਹੈ।