程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11221|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 u& n" z0 e( z3 |. }#include <linux/init.h>2 ~+ e" n& a* ]
#include <linux/module.h>
' i0 g- U- R8 t) A9 e2 {3 [. h" G#include <linux/kernel.h>4 W2 t& T' b# f
#include <linux/types.h>
" R& f4 d1 R/ a7 K3 |#include <linux/gpio.h>. Q$ G* h# M5 G$ A7 m
#include <linux/leds.h>
$ x! f) ]  x3 `: O$ x( w1 b#include <linux/platform_device.h>
# S5 b. G. o2 z- s; R  L1 L, d: [# f
#include <asm/mach-types.h># t  {9 C8 z3 c+ G( K6 I
#include <asm/mach/arch.h>
( S; @7 T4 Q0 \9 _#include <mach/da8xx.h>
, D1 u3 L' D/ S. t! @! F#include <mach/mux.h>
8 K( V1 n1 m: q- [4 Z/ ]! x1 Q
& f1 E( y0 s+ v* l. ~" d  e#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: ]. Z2 r# n& |2 K6 o1 ~- P+ s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( n- ^) g( A9 r. v5 c1 v#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 x  O+ }, d% _8 |#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  U  D$ V( `; g1 h

& n8 x4 X3 _3 R: q5 ]/* assign the tl som board LED-GPIOs*/
# V$ @) y% R' p% `( h4 Mstatic const short da850_evm_tl_user_led_pins[] = {
2 v  T! o( C5 r# B        /* These pins are definition at <mach/mux.h> file */
9 C% R2 [% ?5 e3 B" U1 [  I        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. V! X) I9 @- K7 D. {6 I$ |
        -1
2 P: v( [) K( Q9 A4 ?3 a};! d, u8 k8 Q& r% F) ]! H3 h! n) c
2 a. ~+ G& ?3 |3 L& m. Z# H
static struct gpio_led da850_evm_tl_leds[] = {6 `7 h" W- [$ P% Q
        {
6 O) U% _& b* K8 Z  _7 V                .active_low = 0,
: e1 c1 z: ^/ d" a7 ?4 }- ]7 d                .gpio = DA850_USER_LED0,0 P# H. d; E2 e
                .name = "user_led0",
3 k& S. I/ K6 @/ v                .default_trigger = "default-on",; o4 @9 r. b( n  s
        },
; D3 O( _2 p- X& O4 K        {$ a2 _! S. q. _8 P2 ]4 \
                .active_low = 0,
9 ~6 S% R7 ]9 T$ r+ a. V7 I  o                .gpio = DA850_USER_LED1,
  s: f( y; W+ @0 o                .name = "user_led1",7 |0 O* h( M5 p/ h
                .default_trigger = "default-on",+ D; g: `! p3 J6 [" a& c
        },
  [+ m9 m& |5 E        {
+ x2 K! F# ?0 A6 \8 H1 S2 V                .active_low = 0,
. Q: K7 |: t) R+ L* O, \                .gpio = DA850_USER_LED2,3 K, d' d; d% q3 P$ L- ]
                .name = "user_led2",/ s  R. J- O/ e; j3 c
                .default_trigger = "default-on",
+ D" g3 z; }8 \' ?. h3 a        },2 e1 ]: L8 c" d, S: f
        {9 j. l' \, Q& @7 U) T  |
                .active_low = 0,- p- |( Q- }4 A/ i
                .gpio = DA850_USER_LED3,
# _* v! h  \3 g3 k                .name = "user_led3",
- Q9 f# d% m5 _  H8 f                .default_trigger = "default-on",, D2 c- Q8 K& [  ]( d2 S; Q
        },
% c$ @, P; o) J, v};
2 M8 e  r# u" `) P5 B; W* G" R- s* r. ]* ~6 O
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 Y0 A4 D) m" y! k6 I
        .leds = da850_evm_tl_leds,1 x- `+ D" i; O' X9 b- }
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 D* h) r7 {; I. O& {! ?+ n/ d' ]};
; b# }2 E5 x7 O+ z" V) s; I9 n% a6 K5 Q  \& j, o
static void led_dev_release(struct device *dev)  O+ _% M2 p/ r$ ]1 O6 q
{
; ^. x$ y" [2 y! a9 F};9 m5 X7 g' j0 q! h- h
4 ]$ x  y4 f( _. @
static struct platform_device da850_evm_tl_leds_device = {
( |) i8 h* U* _1 L9 K) |        .name                = "leds-gpio",
" ?) s1 Y3 F6 f) V9 ?' z& Q        .id                = 1,
3 W. j) R+ v8 @& s: u2 Q8 l        .dev = {  I+ U' c. @. ^$ Y( |) t
                .platform_data = &da850_evm_tl_leds_pdata,
2 K# ?; v2 h3 b                .release = led_dev_release,3 a; w3 _+ P2 f1 N5 _
        }5 l- t; a$ P5 N. W. r
};
4 P, _4 v1 p1 |5 I1 a. N0 N7 D9 O
! w! N; f2 {( y2 G+ Hstatic int __init led_platform_init(void)- e7 B6 m% `3 g  W! S/ j( G
{& F0 c' W: n, n6 i
        int ret;. I0 Q5 d' S8 K! e
#if 0
. ^1 H* r# y0 @7 ~1 g        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* X4 G" G% Y) P
        if (ret). }$ Y/ z" ?+ E7 C# n  {% D
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, ]4 H! u2 ^% ]. A, c                                "%d\n", ret);
; Y6 S- _$ @) J' T#endif8 h+ R& m: ?# W& X
        ret = platform_device_register(&da850_evm_tl_leds_device);
2 _0 Z  O. b* g! Y  [. Y        if (ret)" d' g. [4 O2 k. I, M6 l
                pr_warning("Could not register som GPIO expander LEDS");4 @# B) [+ H* h3 S
        else: K+ V6 P' b+ Z' k) l3 [
                printk(KERN_INFO "LED register sucessful!\n");* h9 N. ^5 {0 q/ S  R

! U9 ~9 E% x$ @8 F, |' A        return ret;
8 [+ F) m/ v  r( H9 d- w}
. T2 t' t( y: Z' T; ^/ i
  z. A' g* ~. i# e) J3 _8 Cstatic void __exit led_platform_exit(void)
! i! A6 Q" r6 ^( s7 \' ~{' F' @$ A. E% J( r7 e0 ~! p
        platform_device_unregister(&da850_evm_tl_leds_device);. K; X% G+ R% h% \. ^1 U- i

' W$ |0 Z: o( T# W' }        printk(KERN_INFO "LED unregister!\n");
; U; Y0 e* Z! b3 k}; q* V" Q( H/ R# j5 p% v
* _+ U+ O$ {) x' i' v4 e
module_init(led_platform_init);
. C# L5 z* p4 G8 V4 }5 j! M7 Umodule_exit(led_platform_exit);
2 @1 Q! }' {) F$ d# I3 i2 u
# H- x$ m. }: g1 MMODULE_DESCRIPTION("Led platform driver");
- }6 W$ O( |. W- D( q2 xMODULE_AUTHOR("Tronlong");3 K. U) t5 ?" J3 E' T
MODULE_LICENSE("GPL");# L; I& d: i' K/ f
( w9 U3 _' N. \+ B/ G& N# J$ X, D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-4-28 07:53 , Processed in 0.039032 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表