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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( r, }. T& d' D" E: x1 w9 d! t
#include <linux/init.h>
+ R& m, @0 w6 n( L9 V3 u" p#include <linux/module.h>, n& r) }  C, F$ `
#include <linux/kernel.h>
8 a7 ^. c, P' [- t+ k) D8 i$ H5 K2 z#include <linux/types.h>
4 \* a  v) u2 @0 x; P$ g  G#include <linux/gpio.h>1 s  c+ m5 x) l2 s0 O
#include <linux/leds.h>" G* e) e, s) Z- c* P4 t8 u
#include <linux/platform_device.h>
% y3 R7 e  W' y4 t5 q; V, u9 b8 r2 b! A$ J3 c" B; j; X2 G5 @
#include <asm/mach-types.h>1 k; j3 ]* J8 X6 S
#include <asm/mach/arch.h>
/ k, i9 P7 l2 @* a  @! p. K& @9 V#include <mach/da8xx.h>7 a& @& |# G# A' A
#include <mach/mux.h>  Y. W' c6 g" w( q+ v
! [8 k3 Q$ {. T+ ]& G; c# y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 i' v& `4 @  n#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" j5 ?* T2 e2 p  |! O#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 x1 C' E9 c& }* D
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 W- B9 r# X+ ]6 T3 L8 \+ L

0 ]$ }2 w% y3 G6 r; D/ S; s2 O/* assign the tl som board LED-GPIOs*/
9 d2 E+ n: k' s# k* ?static const short da850_evm_tl_user_led_pins[] = {
. m1 D/ d4 N7 y6 N4 Z3 o  e# H/ E        /* These pins are definition at <mach/mux.h> file */
; f& r$ b+ X& N5 }        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," E) M  P) N2 I. u  B* t
        -1
" d* s+ t; N, D, I, L1 q" N. A9 j};) f6 L$ m$ P- p  ^$ t5 k& Q
) X# v* r* R& S9 W: t6 ]# q
static struct gpio_led da850_evm_tl_leds[] = {- r: G; |( [, Y) t/ M
        {
  z: K  ^: @" x* k                .active_low = 0,
+ v, M5 m* N! P+ H                .gpio = DA850_USER_LED0,2 y- b2 u: f( S& m, O
                .name = "user_led0",
! \% G% n5 w5 o6 @7 V                .default_trigger = "default-on",
3 ]0 s- a/ i3 z; c5 ?; S        },/ k8 U* O7 b& H$ C6 R( D
        {
, z: u, y  b# F  F& u7 h                .active_low = 0,
- h. k! F: Y; _8 D                .gpio = DA850_USER_LED1,; Q3 Q! U; S5 ~9 G; W# D
                .name = "user_led1",8 S3 T, |, d3 u0 O& o/ O6 m
                .default_trigger = "default-on",
" B: e2 g8 X3 ?        },
3 O& q* J" @0 t. s' N! j        {
. C0 M4 B! b9 d5 B                .active_low = 0,
5 G  B" {/ M- ^. J( k2 v# o                .gpio = DA850_USER_LED2,
3 v# E7 v2 Z+ z8 }( H3 s  W                .name = "user_led2",
+ d; S7 _9 Z! l; E- U( K  ~                .default_trigger = "default-on",
& g9 u- g1 T/ v4 s0 M# X        },7 `. C7 [* ~% S5 `
        {& }3 g9 K' ^/ ?/ X
                .active_low = 0,
, Y2 r8 m7 k# j. \) R. Y                .gpio = DA850_USER_LED3,
, @- {/ D5 b4 `' k                .name = "user_led3",
; X9 |) E4 @) {/ n$ w* f                .default_trigger = "default-on",
& e, Q1 p0 L0 l6 L- X& a- u        },$ a2 D1 R2 t# M* `3 a6 [5 n" q
};
" \2 D( e: ]2 a% a
/ v; \  \  Z8 L- v7 {8 }" y8 tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% J; k  N9 R/ s/ X7 t. R
        .leds = da850_evm_tl_leds,
' m  B( o. x# [' b        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 i  c; [5 D. P' q1 C0 [1 q};
. n* w* t) @# D% r& J
6 `* Q( L& `4 A! @( X4 F4 Istatic void led_dev_release(struct device *dev): m4 w% v' w, B, ^3 I
{
* g) p" V6 Z1 L4 M7 i# M8 L};
/ H. i+ O" |  j$ a
# m9 v3 V5 i* x) y* f' ystatic struct platform_device da850_evm_tl_leds_device = {: e. G; E1 k- ~. a/ V* W
        .name                = "leds-gpio",( I& e  i- W2 w3 z0 s
        .id                = 1,
# l- d: y9 X" x) ?+ @% t        .dev = {
9 ]$ n( g7 e: [. A5 t* x) U" m                .platform_data = &da850_evm_tl_leds_pdata,' R2 T" d2 \4 c+ a
                .release = led_dev_release,
( y0 b4 P* C1 N5 J" B        }
/ T4 B/ F& o/ C8 T; E9 Y};) b' u0 D6 k' M

+ k  ]8 }# h3 Q0 F0 u2 c. Dstatic int __init led_platform_init(void)* q* l7 V# a; V
{
; j5 I* H1 p5 x- B5 x        int ret;  _5 f# {% P. s& a
#if 0. ]7 f+ W8 K; e( |7 |/ S6 Q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ @1 F, ~1 n1 k( N& A        if (ret)
0 y+ [, |5 w* l, w- s                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- B. u6 V7 N1 S4 j5 ~' @* q
                                "%d\n", ret);
" {4 p2 Z6 s* ]- v$ |#endif
7 A- V+ `! P# E/ c/ u1 Y/ Y        ret = platform_device_register(&da850_evm_tl_leds_device);$ r0 S7 u# o8 _: M
        if (ret): w% N% _( \; D: t0 j" t
                pr_warning("Could not register som GPIO expander LEDS");
. @$ E1 B* r0 L1 a9 N        else
$ F1 q6 f) @( P                printk(KERN_INFO "LED register sucessful!\n");; k: b, k, O  S! S4 i4 @& U( [
! O( {. l# e! c2 @6 _" p
        return ret;
; A$ H. q  E4 v}
6 A; K* b' x) x: B6 T3 X
, u$ m  G- a5 b) ~) E2 ~static void __exit led_platform_exit(void)' U5 B9 `% T: V( c7 S
{  y1 q( {* a# l( A% q' H) ^5 M8 {
        platform_device_unregister(&da850_evm_tl_leds_device);
7 X. v# h- ]  d1 s
# z, [9 Z' p( r- e        printk(KERN_INFO "LED unregister!\n");1 s$ k, S: j) n" b5 M7 x" ^: ~
}) \* p- Z6 z: ?/ Z0 d
4 h4 t+ N* o! I. Z1 H
module_init(led_platform_init);
' J& z7 M5 J+ ?# O7 S; X% i$ T4 smodule_exit(led_platform_exit);9 O2 X/ z; p2 _' _2 _, ?9 r

6 p; i) {! O$ h' Y- j2 HMODULE_DESCRIPTION("Led platform driver");
3 n( R6 V% G9 e1 WMODULE_AUTHOR("Tronlong");
3 W1 T; a* ^7 [; K& Y0 ?! LMODULE_LICENSE("GPL");
4 g. ~  c$ R) f
' i( I) a! C8 Q7 e) \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-31 00:43 , Processed in 0.040114 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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