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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, ]* b: {) Q. w+ _; L
#include <linux/init.h>
( ]* M  Q7 \; k6 B. b7 N$ d2 c. r3 P& y#include <linux/module.h>( ~0 N3 F1 B5 d( t
#include <linux/kernel.h>' A% R; n7 Z8 M/ Y- V0 `
#include <linux/types.h>
) y2 U! E5 e( A4 a6 l#include <linux/gpio.h>
/ l8 F: I% ~! _% @2 y- ?- @#include <linux/leds.h>! Z9 j8 I. z7 w# m1 y  |
#include <linux/platform_device.h>* x" Y3 B# w" X
* L4 ?* u9 M4 U: N9 A% z
#include <asm/mach-types.h>
; G" e: V5 K1 c#include <asm/mach/arch.h>8 g+ x$ H9 p+ s
#include <mach/da8xx.h>+ ~, n; i7 ^, R8 R9 F
#include <mach/mux.h>
% @0 D' h* O% v
+ m, ]" w! i3 @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" ~6 G' _% p/ \* T4 [#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; M& _# `. a1 N- }$ |, M' v#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 U- u" i+ b9 t+ [% C% G; {#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ @* q) Z4 I- Q2 K" R
. b: e: f3 A$ c, O+ ^) ?& B/* assign the tl som board LED-GPIOs*/" h( @1 a8 ]6 d9 ^9 L. C& C
static const short da850_evm_tl_user_led_pins[] = {  G/ T' n. S2 z
        /* These pins are definition at <mach/mux.h> file */
9 X2 o0 ~3 V5 ]        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% j$ ]& Y+ [# ?8 e2 g
        -14 R$ c% a, T5 b( l  r2 }0 o
};
1 s2 `0 R6 c- N, k' R) o5 Y" P5 i- C4 R! q+ I+ q
static struct gpio_led da850_evm_tl_leds[] = {  }- R- @. m0 E& N- t" @
        {3 e- |, L- N; B$ ]) m8 F* X5 i! [: O
                .active_low = 0,
( H: n* t; |" u9 J4 y- [                .gpio = DA850_USER_LED0,. k$ S& L  L; p4 h8 S
                .name = "user_led0",$ R' s! `) I( }; v: i
                .default_trigger = "default-on",: [. w. G& L, l. U7 a
        },# r+ ?; e/ ]5 O6 g0 ~' `: I
        {
7 x5 [! }* e% v! h* X/ e. ^                .active_low = 0,& Q" @: C) U* J, q% }4 l
                .gpio = DA850_USER_LED1,
4 Z. O/ B/ E  u! [4 ^4 \: @                .name = "user_led1",. H: p: t$ T- X& T* O. {9 Q# P$ s& `
                .default_trigger = "default-on",
, z% x; @# }0 @/ Y/ Z5 q; r        },
* Y8 ]. X; y8 m; a        {
  u# x; _2 \* ?9 V0 @6 P( n                .active_low = 0,
# c8 Q! Z3 H/ i! T                .gpio = DA850_USER_LED2,8 E# L9 T' ]  e4 d* T/ g& [
                .name = "user_led2",
1 e4 c% g. H" n+ f7 h                .default_trigger = "default-on",2 _% l8 ~4 O1 M+ T3 k' Z( e4 J/ E
        },
% p% M4 l0 c6 D+ `0 f        {- H- c. {. p# L- Y: e
                .active_low = 0,0 @0 a3 n' k# W/ c/ M: {* F' e
                .gpio = DA850_USER_LED3,
# X& ?# E3 Z) B* j+ o                .name = "user_led3",4 d2 _4 P6 F& |7 {* M3 t( |
                .default_trigger = "default-on",& E& T3 F- v4 g- w: F
        },
! V; t" A( u& w3 a+ l& _};" E! o! i6 o" n7 s0 D2 ]

* Y0 R0 J% ~# z  O- \" R; @; Vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( l: Z4 Z& v! B        .leds = da850_evm_tl_leds,
) h* G7 A" [' k' B) R# C9 T2 O        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 S5 L; @8 i. }  u, r9 n& e};
$ i) W/ k2 ~# H) {7 M. v8 c5 ?0 g$ z6 v; a: i, a! H% s, U6 Q
static void led_dev_release(struct device *dev)$ o6 N# F2 N' V# }/ K: G8 Y# i( Q0 Q
{
! X$ k" U, K: S0 E* F7 |  \};
, y9 l. E% e9 }7 ^9 W! _
) N5 t+ _, n) K, d" B9 D, n$ \) P; Lstatic struct platform_device da850_evm_tl_leds_device = {
# ?2 [; P+ T3 M1 `( W        .name                = "leds-gpio",# F+ e) X! t" L" B) B% m+ D
        .id                = 1,7 U6 ~1 M5 Z* R% w
        .dev = {
' Z9 X& D9 K: B                .platform_data = &da850_evm_tl_leds_pdata,1 I9 N5 Z/ N$ K3 [) K+ s+ ?( B0 Z
                .release = led_dev_release,9 d. e0 L9 ]3 O( D7 G
        }
* y. H% b% J$ D' e  i};
& Q+ h% E2 C9 \+ o3 m  y$ U7 v/ o: |1 p, }( O
static int __init led_platform_init(void)
' o" j5 i+ j' Z# X; I7 c" g2 G{; G7 k0 M& H3 C9 ]8 E1 a( Q2 c$ k
        int ret;
8 s% Z7 w* b( ]3 Q. ]#if 0
# R" `+ T; a7 A5 G9 x& J, K' k8 S        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 t2 L# m/ M/ {8 u+ D
        if (ret)  s/ E! _' n4 ]5 P6 O5 j( R( I1 M
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- Z5 r% X& ~8 G& ^4 V  p                                "%d\n", ret);6 W0 j# t9 W! ^" t/ }# H( L5 V
#endif
* H0 J' S3 F) D/ F8 A: Z' @9 A        ret = platform_device_register(&da850_evm_tl_leds_device);$ z0 j" `, \  ~+ g$ d6 N
        if (ret)# Q' z' h- ]: G6 ?# I
                pr_warning("Could not register som GPIO expander LEDS");& w2 a' ]' Q: M/ b2 l9 a. H1 U
        else
& {, m. H+ T7 k" p& w& D0 p$ g" O                printk(KERN_INFO "LED register sucessful!\n");# `+ \+ V) |- N8 X. p
( a$ s3 K( @  u5 Z
        return ret;
7 Q4 S# p4 G" X" ~! J}
, [3 [# C5 z1 |9 B
" O# t- m, \  }static void __exit led_platform_exit(void)
! P' H* P0 u% p/ D{
/ V5 ?2 t& g! j        platform_device_unregister(&da850_evm_tl_leds_device);+ ^* v5 H5 G, M0 ]1 q

+ c  u4 E3 }, P0 w        printk(KERN_INFO "LED unregister!\n");2 t. N- {  ^) z1 T
}
, [8 F4 x0 q% m% K* Z( g) ^( M! _  L4 J3 \6 @9 `
module_init(led_platform_init);
9 F" h% k2 H4 v! @$ S: T! Rmodule_exit(led_platform_exit);
" m, u# C/ ~/ J
7 v2 ?# M: J: ]2 U9 h) j% mMODULE_DESCRIPTION("Led platform driver");& k+ L; {- _' Y9 m( t2 A; r& O
MODULE_AUTHOR("Tronlong");5 m, H! S2 g  W" E9 b: b
MODULE_LICENSE("GPL");
7 p2 E# L( z! p9 u
. l$ Q9 G9 {$ T$ ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-27 17:11 , Processed in 0.052016 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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