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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" o3 h: y5 ^- {- L3 @& E+ G* w
#include <linux/init.h>
& ^3 t5 F, n( b( O2 y0 q5 K#include <linux/module.h>
% `4 B8 \+ b! O. W( ^; {#include <linux/kernel.h>
$ G7 ?$ j/ k8 j' f2 W8 T' ]) y#include <linux/types.h>
; a) F9 q, B, Z; d8 O#include <linux/gpio.h>8 o% |" r; Z& N6 q
#include <linux/leds.h>
$ W! G8 D- a. f) W6 W7 p( W- H#include <linux/platform_device.h>
' ?4 U9 K- z7 E' x0 ~  u1 S: v& V$ y
#include <asm/mach-types.h>
4 }% N5 x/ f& o1 e7 f0 Q: Q. ]#include <asm/mach/arch.h>+ u: d, X3 z9 Z2 }; V3 m! E6 ?- x" u
#include <mach/da8xx.h>4 q6 n: y, B- U0 k+ z6 I  a6 f
#include <mach/mux.h>  p9 ~8 m( t+ ?: O/ `1 z

5 a( q9 G/ \% g3 O! F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 g5 S" Y( Z- i1 O5 G, `. y9 b. M#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 p1 d# c1 J2 S) S. r- |# P* O! }
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" ?- b5 W2 K( A9 x# G#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" b' @1 V/ `! O4 K* j0 ~

/ N( o" t, L( v: o/* assign the tl som board LED-GPIOs*/9 y/ U$ S: S! R8 K7 }0 ]1 ?# ^- \
static const short da850_evm_tl_user_led_pins[] = {
; }# m: |* k0 P1 s- \# j% `6 j9 Q        /* These pins are definition at <mach/mux.h> file */2 ?1 q, k! k  L& o- K& X& B* U
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& l. i$ P0 w1 w( C8 Z        -1
* z" ]) p- i- n. A5 b4 g};
6 }+ l$ \% ~6 j  D! _
$ Q* [- V9 W" T& `9 X0 i# t* W& Istatic struct gpio_led da850_evm_tl_leds[] = {
1 K2 {! x5 ?' i- C3 w* ]& S  K5 }        {  M1 v) M6 j1 P* v1 |/ x" N
                .active_low = 0,' ^; _2 o* X8 P  [! X  Y
                .gpio = DA850_USER_LED0,9 Q/ Q) E+ S& l' L
                .name = "user_led0",
" B7 |# S$ r- y) L% \3 |2 f                .default_trigger = "default-on",8 D8 c" B0 T; ?- T4 O0 D1 f& _) ~: j
        },
7 B6 Q8 N0 B1 W- ~' B: f7 @4 `        {0 F; [1 X* \# V- u! A5 W& j" H' d3 w
                .active_low = 0,7 i' U; S8 z2 e0 N' {
                .gpio = DA850_USER_LED1,
! C& M$ P& v" e. ?" ?                .name = "user_led1",! m6 q/ L( O0 q+ r. E+ E0 K4 T
                .default_trigger = "default-on",$ M* y: k6 N6 g$ @( X) ?
        }," n/ }' g. C: b) F- v# r
        {5 F' I; y4 z* M/ }( n) R( v" w
                .active_low = 0,
  B, A+ b2 o6 ^2 z5 A) O! V                .gpio = DA850_USER_LED2,
0 k+ _1 C$ ?% Y6 {( ^4 j1 I$ x8 _                .name = "user_led2",
- j7 ~" z% {3 J" e: G                .default_trigger = "default-on"," l/ z' s/ h% v
        },0 `+ H2 u) Y! M
        {1 k6 X, G% K9 s6 a# X
                .active_low = 0,! y4 i2 b' {8 i3 M9 ^
                .gpio = DA850_USER_LED3,  H* L7 q% E+ @) J/ x
                .name = "user_led3",9 P# {5 L- B9 e1 y- R
                .default_trigger = "default-on",
. @5 X. W8 @; z4 k) R        },$ |; U: i. d+ R- J
};6 W- t' O6 g9 O$ S- z) q
3 }2 e. X# B( A& Y5 c" u2 D7 Q
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: \9 I- U& }' B7 p, b. ~        .leds = da850_evm_tl_leds,! s0 h) O' Z8 }9 t# w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: \' U+ e7 e" y+ N- u1 i9 ~};! a' f$ p6 ?+ v; S" R

# u3 V- n' L) t8 G1 s; h' ]static void led_dev_release(struct device *dev). l2 S; K' F: M" l- Z
{
! g5 D" `( _4 X  n' U};
1 q0 J8 v  T, n. Y7 ]3 z' a- L, ?; c7 n+ x4 L4 u! K
static struct platform_device da850_evm_tl_leds_device = {" e0 g! ]/ f8 d
        .name                = "leds-gpio",
. H3 n2 `7 x$ U5 g6 I        .id                = 1,
) w2 }+ @5 }8 x( k$ Z9 y        .dev = {: {. R$ ?& f- v# t8 T
                .platform_data = &da850_evm_tl_leds_pdata,
5 l# g% `  d( P1 i6 n# A. t% S                .release = led_dev_release,5 M- Y" A6 Z& u
        }' H* C+ @9 Z/ S; e- ^; t
};- C- k6 a7 b; g. \6 n3 M4 s

2 Y  [6 H6 A% Z! J5 f! ~; h$ estatic int __init led_platform_init(void)/ `7 K; B! L+ f$ ^  K
{% s7 I2 b! r2 e9 B% ~! _
        int ret;
, U# N+ t+ ^4 F) }- P5 W5 W' y& R# [#if 0
& y7 T6 D2 k, `8 {5 S9 a        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 m% B  A2 G$ ^/ q
        if (ret)4 w* F9 p' L" {
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  i  [5 u" i, `, \
                                "%d\n", ret);
7 Z: v, p: _$ S1 W$ U#endif) o) U# W7 @$ z% M& h% D0 G
        ret = platform_device_register(&da850_evm_tl_leds_device);
- {- F3 N* S6 x) J! e        if (ret)
3 l* ?, _2 g: o7 ]" E1 v                pr_warning("Could not register som GPIO expander LEDS");
. A/ s0 s& n: p6 ]; G' _' O  j        else( S3 h# V' l- N( T2 o
                printk(KERN_INFO "LED register sucessful!\n");
; Q9 q; C( U; z: D: X; V6 o  N5 ]% Q
        return ret;; J- W5 {9 w, M# \6 l
}. p% p& K0 V! E# e
  L9 U' d* n- w8 p
static void __exit led_platform_exit(void)( K0 H/ G+ p9 J- _- D) ]
{% |$ c6 p$ C% [$ [: m
        platform_device_unregister(&da850_evm_tl_leds_device);# D9 {& C1 T$ i
% z5 F+ R+ Y: X" t
        printk(KERN_INFO "LED unregister!\n");
' o- b+ l4 N; E1 \}
# B( j1 q+ u2 ~) p# C! T
" ~# Y0 V9 B$ E, y8 dmodule_init(led_platform_init);$ V" |1 H8 i' x- R
module_exit(led_platform_exit);, t- n* r" `6 n- q3 I/ \7 K9 Z$ U
6 `. S. Z6 q. [
MODULE_DESCRIPTION("Led platform driver");" s; A0 v0 ]6 [9 l
MODULE_AUTHOR("Tronlong");$ g) b  N7 _! o: b& w2 V" \+ A/ `: w
MODULE_LICENSE("GPL");8 N- |% s& p  v  U( M- b

- T# r5 K" O3 ^/ |- ^7 @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-19 09:24 , Processed in 0.039872 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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