{"action":"created","issue":{"url":"https://api.github.com/repos/NETMF/netmf-interpreter/issues/297","labels_url":"https://api.github.com/repos/NETMF/netmf-interpreter/issues/297/labels{/name}","comments_url":"https://api.github.com/repos/NETMF/netmf-interpreter/issues/297/comments","events_url":"https://api.github.com/repos/NETMF/netmf-interpreter/issues/297/events","html_url":"https://github.com/NETMF/netmf-interpreter/issues/297","id":105950193,"number":297,"title":"CMSIS RTOS RTX, is it required?","user":{"login":"techcap","id":5009242,"avatar_url":"https://avatars.githubusercontent.com/u/5009242?v=3","gravatar_id":"","url":"https://api.github.com/users/techcap","html_url":"https://github.com/techcap","followers_url":"https://api.github.com/users/techcap/followers","following_url":"https://api.github.com/users/techcap/following{/other_user}","gists_url":"https://api.github.com/users/techcap/gists{/gist_id}","starred_url":"https://api.github.com/users/techcap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/techcap/subscriptions","organizations_url":"https://api.github.com/users/techcap/orgs","repos_url":"https://api.github.com/users/techcap/repos","events_url":"https://api.github.com/users/techcap/events{/privacy}","received_events_url":"https://api.github.com/users/techcap/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/NETMF/netmf-interpreter/labels/help%20wanted","name":"help wanted","color":"159818"},{"url":"https://api.github.com/repos/NETMF/netmf-interpreter/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2015-09-11T06:00:48Z","updated_at":"2015-09-25T02:42:00Z","closed_at":null,"body":"I'm on porting ENCJ68 driver in MF4.4.\r\nIn the part of lwip, there are so many changes.\r\nI don't know what CMSIS RTOS RTX is, but I'm curious if it is really required.\r\nlwip 1.4.1 has depedency with arch library which is in CMSIS_RTOS.\r\n"},"comment":{"url":"https://api.github.com/repos/NETMF/netmf-interpreter/issues/comments/143107801","html_url":"https://github.com/NETMF/netmf-interpreter/issues/297#issuecomment-143107801","issue_url":"https://api.github.com/repos/NETMF/netmf-interpreter/issues/297","id":143107801,"user":{"login":"techcap","id":5009242,"avatar_url":"https://avatars.githubusercontent.com/u/5009242?v=3","gravatar_id":"","url":"https://api.github.com/users/techcap","html_url":"https://github.com/techcap","followers_url":"https://api.github.com/users/techcap/followers","following_url":"https://api.github.com/users/techcap/following{/other_user}","gists_url":"https://api.github.com/users/techcap/gists{/gist_id}","starred_url":"https://api.github.com/users/techcap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/techcap/subscriptions","organizations_url":"https://api.github.com/users/techcap/orgs","repos_url":"https://api.github.com/users/techcap/repos","events_url":"https://api.github.com/users/techcap/events{/privacy}","received_events_url":"https://api.github.com/users/techcap/received_events","type":"User","site_admin":false},"created_at":"2015-09-25T02:42:00Z","updated_at":"2015-09-25T02:42:00Z","body":"If I didn't misunderstand the code, calling GLOBAL_LOCK execute __disable_irq() in SmartPtr_IRQ.\r\nOn enc28j60, after calling GLOBAL_LOCK, pbuf_alloc goes to fault.\r\nIf I remove GLOBAL_LOCK, interrupt or xmit functions are executed overlapped, and interferes spi command order, and finally goes to hang on waiting spi ready bits.\r\nAs you said, using prioritized interrupts will be best. But unfortunately I don't know much about CMSIS RTOS.\r\nFor workaround, I used irq.Release and Acquire method for restoring irq temporarily.\r\nI sent pull request. Please check it. After modified, program runs well during two days.\r\nThanks."}}