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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( K6 g, k& k% Q/ k  e3 A' n5 s9 D
#include <linux/init.h>6 r# m1 u& \6 o" [3 C
#include <linux/module.h>7 }) `  D$ e' K8 {
#include <linux/kernel.h>
. D& z9 n+ h( q& E2 }" |#include <linux/types.h>
/ X) a7 p8 U) [0 Y2 M4 V2 E  ?+ B#include <linux/gpio.h>
5 K: d% T+ ~. i. `- `) l#include <linux/leds.h>" V( X& S; X: S. O) L3 _
#include <linux/platform_device.h>
+ T) ?4 r7 C% [; C6 q$ C& J) Q0 z. R
#include <asm/mach-types.h>
9 p* R+ K  h; b& @9 c8 w9 F#include <asm/mach/arch.h>* t8 w/ i+ h5 O
#include <mach/da8xx.h>
% o4 J: K& l' h8 D6 w#include <mach/mux.h>3 [9 i& K$ Q; T6 v
6 |' Y9 U3 l; @0 f3 z( w- x
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" S, h) |% X7 }# |. H4 R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 y3 N: V& V) R" I2 i  _% `. N, i
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' g( w; `4 [. x7 `$ b#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); t' t% T; W& Q$ Q, K0 D

' `; J9 K& a7 f, ]! K' ~! O* W/* assign the tl som board LED-GPIOs*/
7 H$ d/ T9 ]: H. c; v5 m( T$ |static const short da850_evm_tl_user_led_pins[] = {
5 b- ]( _- P5 X* {: h        /* These pins are definition at <mach/mux.h> file */
$ G! y- ^% P  V        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& v8 M  ]; Q& M6 }0 {8 T6 c! U
        -18 i" D) ~, ~8 d, t! T* y% t1 l1 I. T
};
# i! V% [$ {3 P/ Q! d8 _
8 V  u: n/ X! s4 o3 J1 k8 pstatic struct gpio_led da850_evm_tl_leds[] = {. ~8 y# u0 ?" k0 J8 g/ Q( p
        {1 q/ c$ f( b, \
                .active_low = 0,9 _& c0 i  c/ t: Y
                .gpio = DA850_USER_LED0,* v/ J, ]% U, _6 n5 _
                .name = "user_led0",3 P! e# J* U! v
                .default_trigger = "default-on",
1 Y9 e/ v1 k3 S' D- y6 S' F& v8 G        },# c/ X) ?3 |! e
        {/ ~  d. q  r8 C" x! V
                .active_low = 0,! T$ V6 `! r  K$ t
                .gpio = DA850_USER_LED1,7 I/ G& N- P- W6 M! E- T
                .name = "user_led1",* B& X( O7 y0 e. p. C
                .default_trigger = "default-on",
5 |* C# s7 }0 i6 K, v        },% ?) K) G/ G, b3 J8 w3 F2 I9 l
        {
% R' s% s+ b+ \& u! Q                .active_low = 0,' D+ ~4 M7 j: p' }. u3 Y
                .gpio = DA850_USER_LED2," ]' l, @' w( f) [9 j  ?
                .name = "user_led2",
5 W  z& r8 i* ?! D# b9 X, W) z                .default_trigger = "default-on",
% m% e4 E/ ~+ F; v7 G% R) l- ^        },' d. f1 w6 o: Q  C# f
        {
( ?- m+ c; r! N3 J  H                .active_low = 0,
: z& B0 a6 D* G                .gpio = DA850_USER_LED3,
# Q' J  Q+ U: N3 x# W9 I8 y                .name = "user_led3",
8 u* Q( C( ?5 u: Z' ?                .default_trigger = "default-on",5 r: q( V4 k, q4 D$ C3 X
        },
/ R# c& L+ B. F4 {# c/ X};
# w2 A7 _2 D2 T7 P+ p/ i& H' k, Z5 W! q% Q# _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: g  `- ?6 ]" S- P/ x3 K5 j        .leds = da850_evm_tl_leds,
+ b0 Y+ p& _" E$ g3 h: [9 V( l        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) K! l7 n1 u$ `" C, w8 t
};
8 Q5 `% W* B5 f1 G
: l  n5 q" f1 E# o7 D! ^! D: astatic void led_dev_release(struct device *dev)$ D1 O% [! F. h9 b' b
{
6 l, h9 W! [+ @3 l, f1 E};
. I( ?/ h$ _' W* n" ^. o
( V: k; g! w5 Q2 c( vstatic struct platform_device da850_evm_tl_leds_device = {- x  K( @0 D( B) e' O
        .name                = "leds-gpio",1 v% O3 Z, W: Z3 Y0 P7 O8 y
        .id                = 1,: c, u! [( Y( Q5 v8 s/ y
        .dev = {  R% {5 b- s# F; j' t. U5 u
                .platform_data = &da850_evm_tl_leds_pdata,
; B& e, g, P: y8 h5 b                .release = led_dev_release,
. f* j, v2 Q& r: m2 U% n+ L; Q9 D        }: o* \- u* w0 h! @3 L
};/ f0 L1 C' U5 ]8 ]( ?7 p# G
  }6 c/ n- Q' G" Y& ]% d
static int __init led_platform_init(void)
& P, i7 [2 t( v( E' c3 Q; b- D{% T7 l% V5 v) _
        int ret;! |( Y' C; M# W2 y) P
#if 0
7 r; j9 ?# ~0 |8 C' w        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 n& m' ^5 G" H# t2 [# f
        if (ret)/ {# {7 G; I, \/ j% E
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 R2 ~# k5 {% B9 C2 N                                "%d\n", ret);
+ S8 B- v, f8 _5 c#endif& k" [) W4 }9 o& D- u
        ret = platform_device_register(&da850_evm_tl_leds_device);, Y* X0 U( y+ O
        if (ret)
: _. O  Z- q# [" w# w+ u' Q% c5 T/ Y                pr_warning("Could not register som GPIO expander LEDS");7 v" z# H: z% O; m
        else5 _6 J0 q" A% w# C1 \
                printk(KERN_INFO "LED register sucessful!\n");
9 j7 Y# }3 G8 j0 R9 Y) G
  u8 |0 }- f# E; o  E9 A- t4 K! v        return ret;$ [3 X7 V+ X5 e: u
}
. `$ S+ Y. R% Q7 W: J  `0 k! `* l2 J; J$ K9 o, e% u! W
static void __exit led_platform_exit(void)- @3 g0 Q& ?- u8 b: d3 E
{
9 h' q1 H6 @2 R" m3 J6 R0 Q        platform_device_unregister(&da850_evm_tl_leds_device);/ n3 C: u. I+ {: A) ^

5 |3 a. R' `: a* a2 O' s+ y        printk(KERN_INFO "LED unregister!\n");
+ }) R/ W( n6 f! C9 N# _}
, S5 {$ M$ B: D$ T' y7 C4 K6 ?7 d# W) y
module_init(led_platform_init);$ W9 J3 G$ o* x
module_exit(led_platform_exit);
- |+ H1 S: a9 N
; m% l0 |2 V  Z% n: Z1 T' ZMODULE_DESCRIPTION("Led platform driver");/ a4 c0 q. u7 ]! {; Y
MODULE_AUTHOR("Tronlong");
6 m$ E+ M$ O) f% E. o! [MODULE_LICENSE("GPL");
* h# ^, A% J5 J  H, E9 v- T3 v
  J/ {: h* z) {" W& x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-26 14:21 , Processed in 0.040604 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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