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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( g( i, Y: k5 e) ?! m, O#include <linux/init.h>/ |- N5 V9 Z) h  X3 S1 Z
#include <linux/module.h>
! i3 A  k" i% |% {#include <linux/kernel.h>
8 f) c) \: p0 i4 z' N2 P4 `3 e! A#include <linux/types.h>" C5 H* L  A: ~* t# p# m
#include <linux/gpio.h>2 ~3 `- Z: Z& G' }! W0 t0 P
#include <linux/leds.h>
% K6 }, o6 C, b  r4 g#include <linux/platform_device.h>
- G) X5 g$ H8 l' v$ U0 m$ s5 c* S) l
7 `" ]2 S! ]- S: ]& M* ?  V#include <asm/mach-types.h>
/ a7 W* l! z) U& H$ K' c4 s#include <asm/mach/arch.h>. e! _% G( O4 m3 S+ g" r
#include <mach/da8xx.h>
" {3 O$ ?5 P. e  g3 d* c# W3 Y) z2 c#include <mach/mux.h>/ u: f, T' v! W$ n  O+ r1 G

( ^1 u2 X) x8 ~3 S% K#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 N- n4 M" v8 }$ T  y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ K4 S3 ^, }1 ]+ S8 h& T# ?! K4 k#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: o( m1 N$ j5 ]6 l3 B) E& `8 Z3 `* B#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# q8 V9 p7 F4 b4 N* L
* l2 |' J2 M7 F+ S4 ~' g* Z/* assign the tl som board LED-GPIOs*/. b' {" H% i# N, ]* R* N9 ?
static const short da850_evm_tl_user_led_pins[] = {( j0 Y% K5 I4 K& y) j. @
        /* These pins are definition at <mach/mux.h> file */, M- b2 H* c$ B/ N- h
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: X4 N: c$ R1 ~# ]. x1 i. u
        -1
3 K: }% l) g- U$ [- ~# v% A2 O};. }* X! U( d% V1 ^
' {- Z  f! F6 Q+ i) W9 S# [
static struct gpio_led da850_evm_tl_leds[] = {$ O- X% d$ D; u) W7 l1 {  ~
        {% O4 v; a/ y( P  S  E1 J
                .active_low = 0,
( O) Q/ m6 j/ x$ f3 x$ D; _                .gpio = DA850_USER_LED0,0 }( B; o; w4 _" T3 c1 s5 o
                .name = "user_led0",5 _8 D" H; ]% ]+ Q" Q
                .default_trigger = "default-on",
+ u& Y. L  [1 R' z2 a% I  x' D; ?4 R9 v        },+ p5 L( ~% D3 U" M
        {) n2 t: M: N. a  N$ D0 h
                .active_low = 0,
3 B: o* s# Z2 o' [                .gpio = DA850_USER_LED1,
; L' A5 W9 B+ X6 o2 B                .name = "user_led1",: Y' g- A7 x. \- G
                .default_trigger = "default-on",
5 z4 C8 m1 Z& i' k        },* {2 w0 ^9 @  k! r; s
        {/ E, u- a; b. Z5 c) H6 [
                .active_low = 0,% o! b1 J9 D- Q6 F) B5 m
                .gpio = DA850_USER_LED2,8 C8 R& f5 o; E
                .name = "user_led2",
: l" E; _& E; h5 C# C                .default_trigger = "default-on",
( \! a1 `# w+ R" g        },2 A. p: B$ A7 c* b* A; h' E
        {4 J5 O" O: F% E/ n4 r: x2 m2 G
                .active_low = 0,
3 {2 r& r: H, r; j+ N                .gpio = DA850_USER_LED3,
! \: |/ y) r4 Y. W& s7 ~9 C( C2 l                .name = "user_led3",  ]. q3 F& p: \% ]& n
                .default_trigger = "default-on",: K5 n, n0 F4 Y0 A* {/ [
        },3 v! T1 I* `! N+ R8 v8 w
};9 x+ n& `7 R; k; L; y
8 a' Q$ z( k+ X; Z5 l# U
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 T: V9 R3 ~$ ?( ?1 G' P
        .leds = da850_evm_tl_leds,5 O9 W  }* a# y: ]3 g- J4 B
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* Y$ Z! R- T/ c};
4 B" ~0 F9 m6 r2 g; l$ k) d, p0 K* t; a9 ?
static void led_dev_release(struct device *dev)% |4 P& ]2 l" z0 m, g. p0 [
{
2 l* |( v6 R+ r* S( p! }# v};/ `- [: c% u$ ]

6 A. l' C& j6 w# K2 u, @static struct platform_device da850_evm_tl_leds_device = {8 q% u* p! P: s* c6 z! h
        .name                = "leds-gpio",
5 g5 |9 l: B/ T2 |$ e% ~) C        .id                = 1,
4 u* G5 z4 s4 H; r! v. ]# `. ~) y        .dev = {
. X% K8 w: m' M( M                .platform_data = &da850_evm_tl_leds_pdata,+ j  i2 n. u, p  L
                .release = led_dev_release,
; w: h' b) N2 x        }
+ ]# q2 N9 M5 n. I( z7 V, P0 W};
( x7 _/ ~5 `, G$ ]5 S
) ]3 A0 K- E; E7 R$ q3 J1 sstatic int __init led_platform_init(void), E9 h& I' `( Z2 y! Z
{7 o, D  _- f: [5 v$ b) b
        int ret;
  A1 S& S% i! X# h#if 09 {; `* J) \" V
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' }: u  ]5 H* m" B) ?; `8 D7 y        if (ret)- O1 l. `. e& h# O* [0 w
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 w2 ~0 p3 h& U1 z                                "%d\n", ret);8 @5 f7 l' ~8 X6 l, F
#endif
( p3 U" r2 {3 g. B7 l1 ]! s* u0 I        ret = platform_device_register(&da850_evm_tl_leds_device);
8 v( o7 }5 e" b        if (ret)
" l+ g! G+ l' f( u5 h* ~- Z                pr_warning("Could not register som GPIO expander LEDS");
1 s+ X+ ]' L* Q/ u/ ^$ {: W! g        else" g( g/ k# ~9 [, J" {# ^& S
                printk(KERN_INFO "LED register sucessful!\n");
1 [) Q8 c+ S! B5 i  X+ U0 K# \8 a1 ~" h; n3 B; m; |
        return ret;; W  t, s" Q) }1 \3 ]$ `
}( D4 q7 a( c0 O

0 K! D* ]" `7 o/ b0 Zstatic void __exit led_platform_exit(void)% z: `8 U) d2 T+ Q4 W
{
% I+ a+ M% @& c! H( N' T6 o9 u        platform_device_unregister(&da850_evm_tl_leds_device);; q4 p7 m0 ^* E  a/ v( ~
  l- ~: n, V/ a
        printk(KERN_INFO "LED unregister!\n");
1 ]$ o9 v, M( E  ^, B}. B: b1 X  `( j$ _; o
' I  N7 a0 [- a0 z$ i. R
module_init(led_platform_init);
' W: f, T+ v/ G7 F+ k1 Fmodule_exit(led_platform_exit);, I7 p4 h* F& O3 V/ O: G! R2 {5 ^$ F

  Y; W4 D/ s1 B4 S" r, T) [8 {! bMODULE_DESCRIPTION("Led platform driver");4 Z7 V" _+ Z+ L; w" y
MODULE_AUTHOR("Tronlong");( X' n: B- f6 w4 _/ @$ v
MODULE_LICENSE("GPL");/ s. X9 u; P" |( M: I# a

" o; S. n7 ?* u4 E& z! `% }* y1 `3 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-16 15:40 , Processed in 0.053373 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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